そこに:私は次のような宣言をしています:
typedef struct
{
quint8 mark1;
quint16 content1;
quint16 content2;
quint8 mark2;
}FrameHead;
関数では、バッファを定義し、それを評価しました。
quint8 buf[40];
FrameHead *frame = (FrameHead *)buf;
frame->mark1 = 0x68;
frame->content1 = 0x3A;
frame->content1 = 0x3A;
frame->mark2 = 0x68;
だから私が思ったように、bufの最初の6バイトは「68 3A 00 3A 00 68」であるはずですが、実際には、bufの最初の8バイトは「68 90 3A 00 3A 00 68 80」でした。
qDebug() << (quint8 *)(++frame) - buf// output "8" but should be "6"
数字「0x68」は、他のquint16型との一貫性を保つためにquint8型ではなくquint16型として保存されたようです。誰もが同じ問題に遭遇し、何か提案があります。