キーワード(予約語)と型指定子の関係です。
| 型指定子 (Type Specifiers) [C99, 6.7.2] | データ の種類 | メモリ 消費量 | 範囲(桁数)[C99, 5.2.4.2] | |
| 最小値 | 最大値 | |||
| void | 値を持たない。宣言子に制限あり。 | |||
| char | 整数 | unsigned charかsigned charのいずれかで,それは処理系に任されている。[C99, 6.2.5, 15] | ||
| unsigned char | 整数 | 1バイト | 0 | 255 | 
| signed char | 整数 | 1バイト | -127 | 127 | 
| short | 整数 | 2バイト | -32767 | 32767 | 
| int | 整数 | C99 の例では shortと同じ。 | ||
| long | 整数 | 4バイト | -2147483647 | 2147483647 | 
| long long | 整数 | 8バイト | -9223372036854775807 | 9223372036854775807 | 
| float | 少数 | 4バイト | 1.17546435E-38 | 3.40282347E+38 | 
| double | 少数 | 8バイト | 2.2250738585072014E-308 | 1.7976931348622157E+308 | 
| struct タグ {struct-宣言} | 構造体 タグ型。宣言子はオプション。 | |||
| enum タグ {列挙体メンバ} | 列挙体 タグ型。宣言子はオプション。enum タグ {列挙体メンバ}ではタグもオプション。 | |||
| * 「タグ」は,構造体や列挙体を特定化するための識別子。 | 
char が1バイトであることを除き,メモリ消費量と範囲は処理系依存です。また,ブール型データを扱う _Bool や複素数を扱う型,浮動小数点については long double もあります。unsigned char と signed char を除く整数型については unsigned を前に付すとメモリ消費量は変わらずに非負領域が扱えるようになります。例えば,
unsigned short i;
とすると,i は 0 から 65535 までの整数が扱えます。