最初 K&R 給出的關鍵字 | C90 標准添加的關鍵字 | C99 標准添加的關鍵字 |
int | signed | _Bool |
long | void | _Complex |
short | _Imaginary | |
unsigned | ||
char | ||
float | ||
double |
表格數據來自《C Primer Plus》P42 表3.1 C語言的數據類型關鍵字
其中有 3 個用來修飾基本類型的關鍵字:short、long、unsigned
數據類型中的 3 個修飾關鍵字可以與其他或自身組成新的數據類型。對於這幾點應當注意以下幾點:
- short int 類型(簡寫為 short)占用類存可能比 int 類型少,常用語小樹枝的場景以節省空間。於 int 類似,short 是有符號的類型。
- long int 類型(簡寫為 long)占用內存可能嗶 int 類型多,適用於較大數值的場景。與 int 類似,long 是有符號的。
- long long int 或者 long long(C99 標准加入)占用的存儲空間可能比 long 多,適用於更大數值的場合。該類型至少占 64 位。與 int 類似,long long 是有符號類型。
- unsigned int 或 unsigned 只用於非負值的場合。這種類型與有符號類型表示的范圍不同。例如16 位 unsigned int 允許的取值范圍是 0~65535,而不是 -32768~32767.用於表示符號的位現在用於表示另一個二進制位,所以無符號整形可以表示更大的數。
- 在 C90 標准中,添加了 unsigned long int 或 unsigned long 和 unsigned short int 或 unsigned short 類型。C99 標准又添加了unsigned long long int 或 unsigned long long。
- 在任何有符號類型前面添加 signed,可強調實用有符號類型的意圖。例如:short、short int、signed short、signed short int 都表示同一種類型。
以上列表數據來自《C Primer Plus》P47 3.4.2 其他整數類型
要注意的是 long long 類型是 C99 中新增的,所以使用是一定要確認編譯環境是否支持 C99 的編譯。