2015-07-13 33 views
3

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

+2

请勿使用TurboC。它已经过时,不符合标准,给出了不好的诊断结果,并导致代码不佳。使用一些好的免费软件编译器,如[GCC](http://gcc.gnu.org/)或[Clang/LLVM](http://clang.llvm.org/)。如果您还没有安装Linux,请考虑在您的PC上安装Linux。 –

+0

为什么所有这些降价?这是合法的问题,不是吗? – alk

+0

相关:http://stackoverflow.com/q/14159971/694576 – alk

回答

6

sizeof(int)在所有平台上都不是一个常数。

它因系统而异。

PS:只有的sizeof对象,它在所有平台上是恒定是sizeof(char)

0

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

通常sizeof(int)代表CPU的“自然”字宽。但是,如果您的编译器在x64机器上作为x86程序运行,即使此假设中断。

+0

“* ...'sizeof(int)'代表... *”第1个这是不正确的,因为你添加自己,第二个这并不回答这个问题。 – alk

+1

@alk请看“通常”一词。你知道很多反例吗? – DrKoch

相关问题