在我的程序中,我使用了很多串行通信,因此经常使用QByteArray
。有没有更简单的方法来初始化QByteArray?
我想知道是否有初始化以比特定字节的QByteArray
较短方式:
const char test_data[] = {
static_cast<char>(0xB1), static_cast<char>(0xB2),
0x5, static_cast<char>(0xFF),
static_cast<char>(0xEE), static_cast<char>(0xEE),
static_cast<char>(0x0)}; // Note QByteArray should be able to hold 0 byte
const QCanBusFrame frame = QCanBusFrame(0xA1, QByteArray(test_data));
的static_cast<char>
是必要的,因为否则C++ 11给出关于缩小一个错误,因为到0x7F的范围内的0xFF大于char
可以适合 - 但是是QByteArray
构造函数所要求的。
这是所使用的QByteArray
构造:
QByteArray::QByteArray(const char *data, int size = -1)
会发生什么数组(无符号字符*),然后将其转换为char数组(char *)? – OnurA
@OnurA你确定需要使用星号吗? in'test_data'中的行将'int'无效转换为'const unsigned char *' – DBedrenko
您可以很容易地创建一个函数,它可以用你想要的参数创建一个'QByteArray'。 – Garf365