C言語の伝統的な整数型

C言語の伝統的な整数型の一覧です。一覧についてはWikipediaのC data typesから翻訳・引用しています。

説明 最小サイズ (ビット) 書式指定子
char 基本文字セットを含めることができるマシンの最小アドレス可能単位。整数型です。実際の型は、符号ありまたは符号なしのいずれかです。 8 %c
signed char charと同じサイズですが、符号ありであることが保証されています。少なくとも [−127, +127] の範囲を含むことができる。 8 %c (数値出力の場合は %hhi)
unsigned char charと同じサイズですが、符号なしであることが保証されています。少なくとも [0, 255] の範囲を含みます。 8 %c (または数値出力の場合は %hhu)
short
short int
signed short
signed short int
短い符号付き整数型。少なくとも[−32,767、+32,767]の範囲を含むことができる。 16 %hiまたは%hd
unsigned short
unsigned short int
短い符号なし整数型。少なくとも [0, 65,535] の範囲を含みます。 16 %hu
int
signed
signed int
ベーシックな符号付き整数型。少なくとも[−32,767、+32,767]の範囲を含むことができる。 16 %iまたは%d
unsigned
unsigned int
ベーシックな符号なし整数型。少なくとも [0, 65,535] の範囲を含みます。 16 %u
long
long int
signed long
signed long int
長い符号付き整数型。少なくとも[−2,147,483,647,+2,147,483,647]範囲を含むことができる。 32 %liまたは%ld
unsigned long
unsigned long int
長い符号なし整数型。少なくとも[0,4,294,967,295]範囲を含有することができる。 32 %lu
long long
long long int
signed long long
signed long long int
長い長い符号付き整数型。少なくとも[−9,223,372,036,854,775,807,
+9,223,372,036,854,775,807]
範囲を含むことができる。C99バージョンの標準以降に指定。
64 %lliまたは%lld
unsigned long long
unsigned long long int
長い長い符号なし整数型。少なくとも[0,+18,446,744,073,709,551,615]範囲を含む。C99バージョン以降の規格指定。 64 %llu

伝統的なC言語の整数型の注意点

C言語の伝統的な整数型についての、いくつかの注意点です。

charの符号あり・符号なしは処理系依存

charの符号あり・符号なしは処理系依存です。「signed char」「unsigned char」とすることで、符号あり・符号なしを、確定できます。

これはややこしいので、文字を表現する場合はchar、符号あり8bit整数型を表現する場合はint8_t、符号なし8bit整数型を表現する場合はuint8_tの使用を推奨します。

intは符号あり32bit整数ではない

C言語仕様では、伝統的な整数型に関しては、最小幅だけが定義されているということに注意してみてください。intの最小幅は16bitです。多くの処理系では32bit整数型として実装されていますが、C言語仕様として、32bit符号あり整数型であるわけではないことに注意してください。

整数型を扱う場合はC99で導入された幅が保証される整数型を利用するのが推奨です。

関連情報