可能重复:
Does the size of an int depend on the compiler and/or processor?
Integer的大小是依赖于编译器还是依赖于OS或处理器?如果我在32位机器或64位机器上运行的32位操作系统或64位操作系统上使用gcc(在这种情况下只有64位操作系统),该怎么办。
答案 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。