为什么在Turbo C编译器中sizeof(int)是2个字节而在gcc中Linux编译器是4个字节?

时间:2015-07-13 05:59:26

标签: c integer sizeof turbo-c

为什么Turbo C编译器sizeof(int)是2个字节,而gcc Linux编译器是4个字节?

3 个答案:

答案 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位。


编译器应支持该体系结构以使任何应用程序正常工作。

  • GCC 32/64 bit编译器。因此,sizeof(int)4 Bytes
  • Turbo C 16bit编译器。因此,sizeof(int)2 Bytes