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

Jak*_*les 6 c++ size int qt types

我记得在某处读过Qt保证了支持平台上某些数据类型的大小.难道int至少无处不在32位,qint32将是准确的32位无处不在?或者是其他东西?

C++保证int至少16位,并且一些Qt结构喜欢QRect并在内部QPoint使用int.我正在开发一个应用程序,其中需要32位这些类型,我不想重复他们的功能,所以我可以使用更大的类型.

Ste*_*Chu 6

整数类型的大小取决于编译器.我认为没有保证平原int尺寸精确.但是你可以通过将这一行添加到你的开头来确保你知道它不是你想要的main():

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