2015-07-13 79 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

相關問題