プログラミング言語 C の新機能 Part XIII: INT#0:long long int 型
(1999/05/24 [月])
C 言語が初めて作成されてから、現在までかなりの時間が経過しています。それに従い計算機も進化してきました。例えば、64 bit のアドレス空間を持つ CPU の登場です。64bit あれば 18E(エクサ)もの巨大な数を表すことができます。従来の C 言語のコンパイラではそのような巨大な数を表現することは想定していませんでした。そこで、今回新たに long long int という、long 型よりもさらに大きな数を表現できる型が新設されました。具体的な大きさなどは次の通りです。
limits.h は limits.h で定義されている名称を示しています。保証値はどの環境へ行っても最低限保証される値を示しています。実は、この long long int 型については、日本側から、ROMプログラムを作成するときなどはこんな巨大な数は必要ないのになんでオプションでないのか理由をきちんと書いて欲しいという提案も出たりしました。
さてこの long long int 型は gcc や一部の UNIX ではすでに実装されているところもあるので、今回新たに追加された仕様とは知らず、「long long int 型は(従来の) C 言語の仕様で決められているんでしょ」とか言う人もいるかもしれません。
符号 | 基本型 | limits.h | 保証値 |
---|---|---|---|
signed | char | SCHAR_MIN | -127 |
SCHAR_MAX | +127 | ||
unsigned | UCHAR_MAX | 256 | |
signed | short int | SHRT_MIN | -32,767 |
SHRT_MAX | +32,767 | ||
unsigned | USHRT_MAX | 65,535 | |
signed | int | INT_MIN | -32,767 |
INT_MAX | +32,767 | ||
unsigned | UINT_MAX | 65,535 | |
signed | long int | LONG_MIN | -2,147,483,647 |
LONG_MAX | +2,147,483,647 | ||
unsigned | ULONG_MAX | 4,294,967,295 | |
signed | long long int | LLONG_MIN | -9,223,372,036,854,775,807 |
LLONG_MAX | +9,223,372,036,854,775,807 | ||
unsigned | ULLONG_MAX | 18,446,744,073,709,551,615 |
limits.h は limits.h で定義されている名称を示しています。保証値はどの環境へ行っても最低限保証される値を示しています。実は、この long long int 型については、日本側から、ROMプログラムを作成するときなどはこんな巨大な数は必要ないのになんでオプションでないのか理由をきちんと書いて欲しいという提案も出たりしました。
さてこの long long int 型は gcc や一部の UNIX ではすでに実装されているところもあるので、今回新たに追加された仕様とは知らず、「long long int 型は(従来の) C 言語の仕様で決められているんでしょ」とか言う人もいるかもしれません。
by seclan