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で導入された幅が保証される整数型を利用するのが推奨です。