我使用QT在C ++中创建了一个Windows应用程序。如果我想将其移植到Linux或Mac OS,sizeof(int)
或sizeof(long)
会更改吗?换句话说,不同平台的QT应用程序中的类型是否具有相似的大小?
答案 0 :(得分:10)
除了stefaanv的回答,如果你担心他们的身材,请使用quint32
和朋友。 Qt保证它们在所有支持的平台上都具有相同的大小。
结帐QtGlobal:
头文件声明了几种类型定义,这些定义保证了Qt支持的各种基本类型的所有平台上的指定位大小,例如qint8,它是Qt支持的所有平台上保证为8位的有符号字符。头文件还为long long int声明了qlonglong类型定义(Windows上为__int64)。
声明了几个便利类型定义:qreal用于double,uchar用于unsigned char,uint用于unsigned int,ulong用于unsigned long,ushort用于unsigned short。
或者,如果您想要更标准的解决方案,那就是stdint.h。我喜欢一直使用Qt,因为移植实际上就是在另一个平台上运行qmake
。
答案 1 :(得分:7)
int和long是C ++类型。它们没有标准定义的固定大小。
答案 2 :(得分:1)
换句话说,在QT中做类型 不同平台的应用程序 有相似的大小?
首先,Qt而不是QT(Quick Time)。 其次,如果你想在Qt支持的所有平台上有几种类型保证指定的比特大小,那么最好使用QtGlobal中的typedef。 qint8,...