整数コンパイル時定数 は、コンパイルの間に決定される値で、
実行時に変更することはできません。
整数コンパイル時定数式 は、
定数で構成されていて定数に対して評価される式です。
整数定数式は、以下の項目だけで構成される式です。
- リテラル
- 列挙子
- const 変数
- 整数または列挙型の静的データ・メンバー
- 整数型のキャスト
- sizeof 式(オペランドが可変長配列でない場合)
可変長配列型に適用された sizeof 演算子は実行時に評価されるため、定数式ではありません。
以下のような状況においては、整数定数式を使用する必要があります。
- 添え字宣言子の中で、バインド済み配列の説明として。
- switch 文のキーワード case の後。
- 列挙子の中で、enum 定数の数値として。
- ビット・フィールド幅の指定子の中で
- プリプロセッサー #if 文の中で。
(列挙型定数、アドレス定数、および sizeof は、
プリプロセッサーの #if 文では指定できません。)
関連参照
