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

C 語言整數型別完整對照:int、bigint、smallint、tinyint 範圍與儲存大小

     編輯:關於C語言

C 語言標準整數型別在不同平台大小可能不同,資料庫常用固定大小型別名稱。以下為常見整數型別範圍與位元組大小對照 (以 32/64 位系統常見實作為例):

型別名稱範圍位元組大小備註
tinyint / uint8_t 0 ~ 255 1 無號 8 位元,常用旗標、小計數
smallint / int16_t -32,768 ~ 32,767 2 有號 16 位元
int / int32_t -2,147,483,648 ~ 2,147,483,647 4 主要整數型別,integer 同義字
bigint / int64_t -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 8 超出 int 範圍時使用

無號對應型別

有號無號範圍 (無號)大小
int8_tuint8_t0 ~ 2551
int16_tuint16_t0 ~ 65,5352
int32_tuint32_t0 ~ 4,294,967,2954
int64_tuint64_t0 ~ 18,446,744,073,709,551,6158

關鍵規範與最佳實踐

  1. 使用固定寬度型別:<stdint.h> (C99) 提供 intN_t, uintN_t,跨平台行為一致
  2. 避免直接用 int/long 做序列化/網路傳輸:大小隨平台變化 (LP64 vs LLP64)
  3. 資料庫對應:SQL Server bigint=8 bytes, int=4, smallint=2, tinyint=1;MySQL/PostgreSQL 同
  4. 類型提升規則:C 不會自動將小型別提升為 bigint,函數回傳 bigint 需參數為 bigint
  5. 常數後綴:123L (long), 123LL (long long), 123U (unsigned), 123ULL

平台差異提醒 (LP64 vs LLP64)

資料模型intlonglong longpointer典型系統
LP644888Linux/macOS 64-bit
LLP644488Windows 64-bit
ILP32448432-bit 系統

結論:跨平台程式碼務必使用 int32_t, int64_t 等固定寬度型別,避免依賴 long 大小。

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