C ユーザーズガイド

整数定数

式と同様に、ある整数定数の型の規則も変更されました。K&R C では、接尾辞なしの 10 進定数の型は、その値が int に収まる場合だけ int でした。接尾辞なしの 8 進定数または 16 進定数の型は、その値が unsigned int に収まる場合だけ int でした。それ以外の場合、整数定数の型は long でした。したがって、値が結果の型に収まらないことがありました。ANSI C では、定数の型は、次のリストのうち、値を格納できる最初の型となります。

接尾辞なし 10 進数:

int、long、unsigned long

接尾辞なし 8 進数または 16 進数:

int、unsigned int、long、unsigned long

接尾辞 U 付き:

unsigned int、unsigned long

接尾辞 L 付き:

long、unsigned long

接尾辞 UL 付き:

unsigned long

ANSI C コンパイラで -xtransition オプションを使用するとき、定数の型規則によって式の動作が異なる場合は警告が発行されます。古い整数定数の型規則は、移行モード (-Xt) だけで適用されます。ANSI モード (-Xa) と準拠モード (-Xc) では、新しい規則が適用されます。