C語言標準僅規定類型最小範圍,具體長度由編譯器與目標架構決定。本表彙總主流平台(16/32/64 位)下常見類型的位元組大小,助你編寫可移植代碼。
| 類型 / 類型組合 | 16 位編譯器 | 32 位編譯器 | 64 位編譯器 | 備註 |
|---|---|---|---|---|
| char / signed char / unsigned char | 1 位元組 | 標準保證 | ||
| char* (指針) | 2 位元組 | 4 位元組 | 8 位元組 | 隨地址總線寬度變化 |
| short int | 2 位元組 | 通常 16 位 | ||
| int / unsigned int | 2 位元組 | 4 位元組 | 32/64 位通常同為 32 位 | |
| long int | 4 位元組 | Windows 64 位仍為 4B (LLP64) | ||
| float | 4 位元組 | IEEE 754 單精度 | ||
| double | 8 位元組 | IEEE 754 雙精度 | ||
| long double | 8 / 10 / 12 / 16 | 平台差異極大,x86 常 10B (80-bit) | ||
| long / unsigned long | 4 位元組 | 8 位元組 | Linux 64 位為 LP64 模型 | |
| long long | 8 位元組 | C99 引入,保證 ≥ 64 位 | ||
| string (字符串字面量) | 字符數 + 1 | 含結束符 `\0` | ||
收藏本表,下次跨平台移植或調試記憶體佈局時,不再猜測類型長度!