以下が有効なコードであることはわかっています。
#define SOMEMACRO 10
int arr[SOMEMACRO];
これは次のようになりint arr[10]
ます。
その 2 倍のサイズの配列を作成したい場合 (それでも元のマクロが別の場所に必要な場合)、これは有効なコードですか?
#define SOMEMACRO 10
int arr[2 * SOMEMACRO];
これはint arr[2 * 10]
プリコンパイル後のものです。これはまだコンパイラによって定数式と見なされますか?
ざっと見てみると動作しているように見えますが、これは定義された動作ですか?