为什么Turbo C编译器sizeof(int)
是2个字节,而gcc Linux编译器是4个字节?
答案 0 :(得分:6)
sizeof(int)
在所有平台上都不是常量。
因系统而异。
PS:只有在所有平台上保持不变的sizeof对象为sizeof(char)
答案 1 :(得分:0)
sizeof(int)
因机器而异(有时从编译器到编译器)。
通常sizeof(int)
表示CPU的“自然”字宽。但是如果你的编译器在x64机器上作为x86程序运行,那么这个假设就会破坏。
答案 2 :(得分:0)
在 MSDOS 中,说明代码为16 bit | 2 Bytes
。
因此,最大整数值为16bit
整数。
关键字
int
随编译器的不同而不同。 Turbo C 是16 bit
编译器,因此可以将代码编译为处理器的16 bit
机器代码!众所周知,编译器会将代码转换为机器代码才能正常工作。
海湾合作委员会也是如此。
我们今天使用的计算机是32/64
位。
编译器应支持该体系结构以使任何应用程序正常工作。
32/64 bit
编译器。因此,sizeof(int)
是4 Bytes
。16bit
编译器。因此,sizeof(int)
是2 Bytes
。