C中整数的大小

时间:2011-08-24 18:10:24

标签: c gcc int

  

可能重复:
  Does the size of an int depend on the compiler and/or processor?

Integer的大小是依赖于编译器还是依赖于OS或处理器?如果我在32位机器或64位机器上运行的32位操作系统或64位操作系统上使用gcc(在这种情况下只有64位操作系统),该怎么办。

6 个答案:

答案 0 :(得分:7)

这取决于编译器,处理器和操作系统的组合。

例如,在64位Intel CPU上,在64位模式下,Windows中long int的大小为4字节,而在Linux和Mac上则为8字节。英特尔的所有三个操作系统中int为4个字节。

编译器实现者也可以选择,但通常使用操作系统使用的内容。但很可能一个拥有所有三个平台的C编译器的编译器供应商决定在这三个平台上使用相同的大小。

当然,在16位CPU上使int 4个字节(尽管可能)是没有意义的。

所以这取决于你提到的所有三件事。

答案 1 :(得分:3)

取决于编译器选项
当然这也取决于编译器本身 但编译器是针对特定操作系统而制作的,因此它取决于操作系统 和/或
编译器是针对特定处理器的,因此它取决于处理器

答案 2 :(得分:1)

int,long等的大小取决于编译器,但编译器实现者将为特定处理器和/或OS选择最佳大小。

答案 3 :(得分:0)

这取决于系统。系统我指的是处理器和操作系统的任何组合,但它通常与使用中处理器的“自然”整数大小绑定。

答案 4 :(得分:0)

C中int的大小以及几乎所有其他类型的大小都是实现定义的。某些编译器可能会在特定平台上提供保证,但这取决于实现。你不应该依赖它

答案 5 :(得分:0)

  

Integer的大小是否在编译器或操作系统或处理器上显示?

是。它可以取决于任何一件事。

它实际上是由平台ABI定义的,它由编译器和运行时库设置,但编译器在不同的OS或体系结构上使用不同的ABI。