在Qt支持的每个平台上int保证是32位还是仅qint32?

时间:2010-06-21 18:18:26

标签: c++ qt types size int

我记得在某处读过Qt保证了支持平台上某些数据类型的大小。是int到处至少 32位,qint32 32位到处都是?或其他什么?

C ++保证int至少为16位,而QRectQPoint等Qt结构在内部使用int。我正在开发一个应用程序,这些类型需要32位,我不想复制它们的功能,所以我可以使用更大的类型。

2 个答案:

答案 0 :(得分:6)

整数类型的大小取决于编译器。我不认为普通int具有精确尺寸的保证。但是,您可以通过将此行添加到main()的开头来确保您知道这不是您想要的:

if(sizeof(int) != 4) {
  throw std::runtime_error("int is not 32-bit");
}

答案 1 :(得分:0)

虽然据我所知,技术上可能int不是32位,但我从未见过它不是的平台。想象一下,char,8bits,short,16bits,int,.. 24bits?它根本不适合int的层次结构为非32位。

此外,您可以使用UINT_MAX确认给定编译器的int大小。