QT应用程序中针对不同平台的类型是否具有相似的大小?

时间:2009-11-14 11:50:34

标签: c++ qt cross-platform built-in-types

我使用QT在C ++中创建了一个Windows应用程序。如果我想将其移植到Linux或Mac OS,sizeof(int)sizeof(long)会更改吗?换句话说,不同平台的QT应用程序中的类型是否具有相似的大小?

3 个答案:

答案 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,...