• 12520阅读
  • 4回复

[讨论]QT中基本数据类型的大小 [复制链接]

上一主题 下一主题
离线tanius
 

只看楼主 倒序阅读 楼主  发表于: 2011-07-26
C/C++编译器,在不同的系统里,其基本的数据类型占的字节数是不一样的。
QT是跨平台的,其中基本数据类型是不是也受到运行机子本身相关?
32机上与16位机上的 int 整型数据类型是不是分别,占4Byte与2Byte,而在64位机子上占8Byte?

看了ActiveQt模块中,COM数据类型与 QT的数据类型对应表,怎么long等,都是与int,char一样的字节数?
离线dbzhang800

只看该作者 1楼 发表于: 2011-07-26
Qt 只是 C++的库,所以它不可能改变,也不可能增加你所用C++的基本数据类型。

至于ActiveQt,是因为你所有参数都是通过QVariant进行传递的,为了使用QVariant ( int val ),char, short, int, long 等都会提升为int
离线roywillow

只看该作者 2楼 发表于: 2011-07-26
另外使用quint16,、quint32、quint64之类的类型好像是可以避免这种平台差异
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线tanius

只看该作者 3楼 发表于: 2011-07-28
引用第2楼roywillow于2011-07-26 18:10发表的  :
另外使用quint16,、quint32、quint64之类的类型好像是可以避免这种平台差异

quint16,quint32,quint64之类的类型,在QT里,是使用typedef定义的类型,其实质还是int,只不过是利用宏定义,在不同位的机子上,32位机与64位机上定义因为编译器里的参数不一样,而选用不同的定义,来保证其16位,32位,或64位的类型长度
离线tanius

只看该作者 4楼 发表于: 2011-07-28
引用第1楼dbzhang800于2011-07-26 17:56发表的  :
Qt 只是 C++的库,所以它不可能改变,也不可能增加你所用C++的基本数据类型。
至于ActiveQt,是因为你所有参数都是通过QVariant进行传递的,为了使用QVariant ( int val ),char, short, int, long 等都会提升为int


使用QVariant里,已存在类型转换了
快速回复
限100 字节
 
上一个 下一个