#define
サイズの代わりにリテラルを使用すると、コンパイラからエラーが発生するのに、なぜ配列を宣言しようとするとエラーが発生するのでしょうか。
some_name.h:
#define size 10;
int* waitingBench[size];
#define
サイズの代わりにリテラルを使用すると、コンパイラからエラーが発生するのに、なぜ配列を宣言しようとするとエラーが発生するのでしょうか。
#define size 10;
int* waitingBench[size];
あなたが持っているものは次のように前処理されます:
int* waitingBench[10;];
// ^ notice this guy!
からセミコロンを削除し#define
ます。
(そしてsize
、それは本当に悪い識別子#define
です。)
定義からを削除;
します。あなたが現在それを持っているので、これはint* waitingBench[10;];
あなたが間違っていると知っている同等のものです。
マクロ定義はC命令ではないため、セミコロンで終了する必要はありません(また、行継続バックスラッシュを使用しない限り、1行を超えてはならず、他の何かと行を共有してはなりません)。
削除する ";" 最終的には:
#define size 10