• 5435阅读
  • 2回复

[提问]关于qt字节大小问题 [复制链接]

上一主题 下一主题
离线ucgui
 
只看楼主 倒序阅读 楼主  发表于: 2011-06-10
代码如下  
     QString text = "hello world";      
       int num=100;        
       QBuffer buffer;        
       buffer.open(QBuffer::ReadWrite);
        QDataStream out(&buffer);
        int size;  
       out << text;  
       out << num;  
       size = buffer.size();
         qDebug()<<size;
输出的size = 30.

但是text长度为11,num的长度为4,请问为什么size不是15 而变成两倍30了呢。

离线dbzhang800

只看该作者 1楼 发表于: 2011-06-10
QString 内部采用utf16,而你的这11个字符都位于Unicode最简单的bmp平面,故占用 11*2  = 22个字节
你的系统和编译器估计都是32位的,所以 int 占 4个字节
你使用的QDataStream,故写入QString时,先写入字符串长度值quint32, 4个字节

故 22+4+4
离线ucgui
只看该作者 2楼 发表于: 2011-06-10
谢谢老大

看来还要加紧学习啊
快速回复
限100 字节
 
上一个 下一个