我记得在某处读过Qt保证了支持平台上某些数据类型的大小。是int
到处至少 32位,qint32
32位到处都是?或其他什么?
C ++保证int
至少为16位,而QRect
和QPoint
等Qt结构在内部使用int
。我正在开发一个应用程序,这些类型需要32位,我不想复制它们的功能,所以我可以使用更大的类型。
答案 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大小。