QByteArray byteArray;
QDataStream dataStream(&byteArray, QIODevice::WriteOnly);
dataStream << (quint8)22;
dataStream << "test2";
qInfo() << byteArray;
结果: \x16\x00\x00\x00\x06test2\x00
为什么使用 4 个字节而不是 1 个?我明确地说我希望它是unsigned char
. 在幕后是否有一些内存对齐?我可以关掉它吗?
编辑:似乎只有当我写char*
它时才从头开始添加 3 个字节。
\x16\x00\x00\x00\x06test2\x00
\x16
你是uint8吗?
\x00\x00\x00\x06
是一个固定大小的四字节头的字符串长度(显然包括空值)。
然后是您的字符串,后跟一个终止空值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句