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

C/C++ 基本數據類型大小與範圍完整對照表(含 Dev-C++ 實測)

     編輯:關於C語言

標準類型尺寸(32/64 位常見值)

類型位數有符號範圍無符號範圍格式符
char8-128 ~ 1270 ~ 255%c / %hhd
short16-32,768 ~ 32,7670 ~ 65,535%hd / %hu
int16/32-2^15 ~ 2^15-1 / -2^31 ~ 2^31-10 ~ 2^16-1 / 0 ~ 2^32-1%d / %u
long32/64同 int / -2^63 ~ 2^63-1同 unsigned / 0 ~ 2^64-1%ld / %lu
long long64-9.22e18 ~ 9.22e180 ~ 1.84e19%lld / %llu (GCC) / %I64d (MSVC)
float32±3.4e38 (7 位精度)—%f / %e / %g
double64±1.7e308 (15 位精度)—%lf / %le / %lg
long double80/96/128實現相關,通常同 double—%Lf / %Le / %Lg

關鍵差異點

  1. char 是否有符號:實現定義,涉及字符處理請顯式用 signed char/unsigned char
  2. int 位寬隨編譯器目標架構:16 位機為 2 字節,32/64 位機為 4 字節
  3. long long 格式符跨平台差異大:GCC 用 %lld,MSVC 用 %I64d,MinGW 編譯期認 %lld 運行期需 %I64d
  4. float 參數傳遞自動擴展為 double,printf 用 %f 統一處理

Dev-C++ (MinGW) 實測對照表

/* 輸出示例 */
sizeof(char)         = 1
sizeof(short)        = 2
sizeof(int)          = 4
sizeof(long)         = 4
sizeof(long long)    = 8
sizeof(float)        = 4
sizeof(double)       = 8
sizeof(long double)  = 12  // 80-bit extended, 存儲對齊到 16 字節

工程建議

  • 定長需求用 <stdint.h>:int32_t、uint64_t 等
  • 2. 結構體對齊注意 #pragma pack 或 __attribute__((packed)) 3. 跨平台序列化/網絡協議禁止直接傳遞基本類型,必須定義線制格式
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved