首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言入門

C語言數據類型長度速查表:跨平台差異一覽

     編輯:C 語言入門

C語言標準僅規定類型最小範圍,具體長度由編譯器與目標架構決定。本表彙總主流平台(16/32/64 位)下常見類型的位元組大小,助你編寫可移植代碼。

類型 / 類型組合16 位編譯器32 位編譯器64 位編譯器備註
char / signed char / unsigned char1 位元組標準保證
char* (指針)2 位元組4 位元組8 位元組隨地址總線寬度變化
short int2 位元組通常 16 位
int / unsigned int2 位元組4 位元組32/64 位通常同為 32 位
long int4 位元組Windows 64 位仍為 4B (LLP64)
float4 位元組IEEE 754 單精度
double8 位元組IEEE 754 雙精度
long double8 / 10 / 12 / 16平台差異極大,x86 常 10B (80-bit)
long / unsigned long4 位元組8 位元組Linux 64 位為 LP64 模型
long long8 位元組C99 引入,保證 ≥ 64 位
string (字符串字面量)字符數 + 1含結束符 `\0`

關鍵移植建議

  • 用 `stdint.h` 精確類型:`int32_t`、`uint64_t` 等保證位寬,替代 `int`/`long`。
  • 指針 ≠ int:64 位下指針 8B,`int` 仍 4B,強轉會截斷地址。
  • 結構體對齊:不同平台填充規則不同,用 `offsetof` 計算偏移,勿硬編碼。
  • `sizeof` 運算符:編譯期常量,零開銷,隨時驗證類型大小。

收藏本表,下次跨平台移植或調試記憶體佈局時,不再猜測類型長度!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved