【发布时间】:2023-03-08 17:31:01
【问题描述】:
QByteArray ba;
QDataStream ds(&ba,QIODevice::WriteOnly);
ds<<quint8(1)<<quint16(2)<<quint32(3); //1+2+4
qDebug()<<"size:"<<ba.size(); // 7
我用QDataStream写了3个数字,ba.size()是7,但我对此感到困惑:
QByteArray ba;
QDataStream ds(&ba,QIODevice::WriteOnly);
QString s="a";
ds<<quint8(1)<<quint16(2)<<quint32(3)<<s; //1+2+4+a
qDebug()<<"size:"<<ba.size(); // 13
如果 QString 的 size 是 1,ba 的大小加 6,这是为什么呢? sizeof(QString) 是 4。
【问题讨论】:
标签: c++ qt qstring qbytearray qdatastream