c++ - 为什么在 64 位机器上的 C++ 中 int 的大小不是 8 个字节。还有 gcc 的任何版本都支持 8 字节 int 吗?

标签 c++ int sizeof

为什么 C++ 中的 int 值不能有 8 字节大小? 我知道在 Linux 和 Mac 中 long 是 8 个字节。 是否有编译器将 int 的大小设置为 8?

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

最佳答案

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

在过去 20 年左右的时间里,人们假设 int长度为 4 个字节(至少在 x86 和 amd64 CPU 上)。更改 int 的大小时在 C++ 标准下是完全合法的,它也会破坏大量依赖 int 大小的旧代码。对于诸如摆弄之类的事情。破坏人们的代码并不是说服他们应该继续使用你的编译器的好方法,因此编译器制造商倾向于使编译器的行为像人们期望的那样,即使这种行为不是由语言标准强制执行的。

关于c++ - 为什么在 64 位机器上的 C++ 中 int 的大小不是 8 个字节。还有 gcc 的任何版本都支持 8 字节 int 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51717359/

相关文章:

c++ - 找到复 vector 中的最低实值

c++ - 分配 Union 的字段

java - 如何在Java中将RGB颜色转换为十六进制

scala - 为什么 scalac 盒子是 Int?

c++ - 将结构体成员声明为 uint32_t 时的额外字节

c - sizeof argv[1] 不工作

c++ - Tab '\t' 间距不一致

java - 如何在java中执行 "an exe with return value"?

用2个函数计算

c - 为什么在malloc中使用sizeof?