<分区>
我想知道,在 C/C++ 中通常可用的所有数据类型中,为什么其中一些依赖于操作系统或编译器?
这是否有任何合乎逻辑的原因,还是只是设计使然?
<分区>
我想知道,在 C/C++ 中通常可用的所有数据类型中,为什么其中一些依赖于操作系统或编译器?
这是否有任何合乎逻辑的原因,还是只是设计使然?
最佳答案
是的。因为 C/C++ 运行在许多不同的机器架构上。
因此 int
被定义为机器的“自然大小”——这让编译器生成可以在该机器上运行良好的代码。
在现代机器上,通常是 32 位或 64 位。在旧机器上,它是 16 位。 在某些机器上(您可以查一下)它是 24 位或 36 位。
C 标准在定义这些类型时非常谨慎。
它需要一些东西(比如“long
不能小于 int
”),同时将其他东西留给实现。
关于c++ - 为什么在所有数据类型中 int 都依赖于操作系统或编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13867595/