C聲明 | 32位機器(X86) | 64位機器(X64) |
char | 1 | 1 |
short int | 2 | 2 |
int | 4 | 4 |
long int | 4 | 8 |
long long int | 8 | 8 |
char * | 4 | 8 |
float | 4 | 4 |
double | 8 | 8 |
幾個注意點:
1:指針類型變量的大小只取決於計算機系統的位數,它的大小也等於該計算機系統的int類型大小,即該計算機系統“字”的大小。(這句話中的int其實是上面表格中的long int,因為C語言為了保持跨平台的統一,所以char, short int, int, long long int都采用了固定位數,不隨系統位數變化而變化,但是long int類型是根據系統位數決定的!)
2:在32位系統下,是無法直接操作64位的整數的,所以32位下的long long int的操作是編譯器通過一系列位運算完成的。
3:一個計算機系統的尋址能力由“字”決定,例如:32位系統下的“字”大小為32位(意思就是采用32位大小的整數來表示每個內存地址),所以尋址能力為2的32次方,地址范圍為0 ~ 2^32 - 1。