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



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

sizeof(int)并非在所有平台上都是常量。

它因系统而异。

PS: sizeof(char)

sizeof(int)因机器而异(有时因编译器而异)

通常sizeof(int)表示CPU的"自然"字宽。但是,如果您的编译器在x64机器上作为x86程序运行,那么这种假设就会失效。

MSDOS指令代码为16 bit | 2 Bytes
因此,最大整数值将是16bit整数。

目前我分析的内容:

关键字int在不同的编译器中是不同的。Turbo C16 bit编译器,因此它将代码编译为处理器的16 bit机器码!

我们都知道,编译器将代码转换成机器代码才能工作。
GCC同样适用。

我们今天使用的计算机要么是32/64位。


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

  • GCC32/64 bit编译器。所以,sizeof(int)就是4 Bytes
  • Turbo C16bit编译器。所以,sizeof(int)就是2 Bytes

相关内容

最新更新