c – 是否有更短的方法来初始化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可能适合的范围 – 但是char是QByteArray构造函数所要求的.

这是使用的QByteArray构造函数:

QByteArray :: QByteArray(const char * data,int size = -1)

最佳答案
简单有效:

QByteArray b = QByteArrayLiteral("\x12\x00\xa4\x42\x51\x00\x00\x99");

转载注明原文:c – 是否有更短的方法来初始化QByteArray? - 代码日志