式と同様に、ある整数定数の型の規則も変更されました。K&R C では、接尾辞なしの 10 進定数の型が int になるのは、その値が int に収まる場合だけでした。接尾辞なしの 8 進数定数または 16 進数定数の型が int になるのは、その値が unsigned int に収まる場合だけでした。それ以外の場合、整数定数の型は long でした。したがって、値が結果の型に収まらないことがありました。1990 ISO/IEC 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
-xtransition オプションを使用するとき、関係する定数の型規則によって式の動作が異なる可能性がある場合は ISO C コンパイラは式について警告します。古い整数定数型規則が使用されるのは、移行モードだけです。ISO モードと準拠モードでは新しい規則が使用されます。