C語言基礎
C語言的標準中,關於 int 型別的大小有何規定?下列何者正確?
- A在所有處理系統中都規定為32位元
- B只規定至少要有16位元,實際大小由處理系統決定
- C規定與CPU的位址寬度相同,在64位元的CPU上為64位元
查看答案與解析
正確答案:B. 只規定至少要有16位元,實際大小由處理系統決定
C語言的標準只要求 int 至少能表示 −32767~32767(也就是16位元以上),實際大小由處理系統(編譯器與目標CPU的組合)決定。在16位元微控制器用的編譯器中,int 可能是16位元;在多數PC與32位元微控制器上則是32位元。即使在64位元的Linux或Windows上,int 一般仍是32位元,變成64位元的是指標。需要固定大小的整數時,使用 stdint.h 的 int32_t 等型別。
- A. 32位元是許多環境中的大小,但並非標準的規定。也有使用16位元 int 的處理系統。
- B. 正確。標準只規定可表示範圍的下限,實際大小由處理系統決定。
- C. 即使在64位元的Linux或Windows上,int 一般也是32位元。