首页 > 解决方案 > 为什么在 64 位机器上的 c++ 中 int 的大小不是 8 字节。还有任何版本的 gcc 是否支持 8 字节 int?

问题描述

为什么 c++ 中的 int 值不能有 8 字节大小?我知道在 Linux 和 Mac 中 long 是 8 个字节。还有任何编译器的 int 大小为 8 吗?

我尝试搜索大小为 8 字节的 int 的 GCC 编译器,但找不到与之相关的任何内容。

标签: c++intsizeof

解决方案


没有什么可以阻止编译器使用 8 字节int,除了它可能会破坏大量现有代码。

在过去 20 年左右的时间里,人们假设 anint是 4 字节长(至少在 x86 和 amd64 CPU 上)。虽然在 C++ 标准下更改 an 的大小int是完全合法的,但它也会破坏大量依赖 an 大小的旧代码,int例如位旋转。破坏人们的代码并不是说服他们应该继续使用您的编译器的好方法,因此编译器制造商倾向于使编译器的行为符合人们的期望,即使语言标准没有强制要求这种行为。


推荐阅读