整数定数式

整数コンパイル時定数 は、コンパイルの間に決定される値で、 実行時に変更することはできません。 整数コンパイル時定数式 は、 定数で構成されていて定数に対して評価される式です。

整数定数式は、以下の項目だけで構成される式です。
  • リテラル
  • 列挙子
  • const 変数
  • 整数または列挙型の静的データ・メンバー
  • 整数型のキャスト
  • sizeof 式。ただし、オペランドは可変長配列であってはならない。

可変長配列型に適用される sizeof 演算子は、実行時に評価され、 そのため、定数式ではありません。

以下のような状況においては、整数定数式を使用する必要があります。
  • 添え字宣言子の中 (バインドされた配列の記述として)。
  • switch ステートメントのキーワード case の後。
  • 列挙子の中で、列挙型定数の数値として。
  • ビット・フィールド幅の指定子の中。
  • プリプロセッサーの #if ステートメントの中。(プリプロセッサーの #if ステートメントに列挙型定数、アドレ ス定数、および sizeof は指定できません。)