2012-03-29 47 views
0

說int數據類型的寬度取決於ALU的數據寬度是正確的嗎? 例如,說32位處理器的int數據類型爲32位寬是正確的嗎? 同樣適用於16位和8位(請注意C保證int的大小至少爲greater than 16 bit)。機器上int數據類型的寬度

+0

許多處理器在一段時間內都沒有明確的ALU,因此您不能真正將其用作參考。相反,使用處理器內部數據總線寬度可能會更好。 – 2012-03-29 09:29:13

+1

檢查鏈接:http://stackoverflow.com/questions/2331751/does-the-size-of-an-int-depend-on-the-compiler-and-or-processor – Vijay 2012-03-29 09:30:20

+0

這裏是另一個,幾乎是重複的:http://stackoverflow.com/questions/9689049/what-decides-the-sizeof-an-integer – 2012-03-29 09:41:22

回答

4

不,這取決於實施。例如,許多64位系統的編譯器仍然有32位寬的整數。

+0

另外,386+的16位編譯器很長一段時間都在使用。 – ninjalj 2012-03-29 10:10:19

+0

而8位編譯器通常有16位整數。 – Lundin 2012-03-29 11:40:09

1

由於原始類型和內置運算符(如sizeof)的詳細信息是編譯器特定的,因此您可能不得不引用編譯器有關確定基本類型大小的文檔。最後它可能與硬件的細節直接相關,但我相信C的抽象層次要高於ALU的細節。