C 標準僅規定類型最小範圍與相對大小關係,具體字節數由編譯器實現(ABI)。下表為主流平台常見值:
| 類型 | 32位系統 | 64位系統 |
|---|---|---|
| short / short int | 2 | 2 |
| int / unsigned int | 4 | 4 |
| long / long int | 4 | 8 |
| long long / long long int | 8 | 8 |
| unsigned long | 4 | 8 |
| float | 4 | 4 |
| double | 8 | 8 |
| char | 1 | 1 |
| char * (指針) | 4 | 8 |
long 仍為 4 字節,指針 8 字節。short ≡ short intlong ≡ long intunsigned ≡ unsigned intsigned ≡ signed int編寫可移植代碼時,應使用 stdint.h 定義的精確寬度類型(int32_t, int64_t, uintptr_t 等),避免依賴 long 大小。