プリプロセッサ定義で、
#ifdefの判定する際に、or条件を含めたかった時のこと
問題、以下の文はエラーです。
#ifdef CONDITION1 || CONDITION2
#ifdef
では、define
されてるかどうかの判定をするので検証したいマクロを渡さないといけません。
上記はOR判定結果のBooleanを評価させようとしてるので根本的に間違いだと分かります。
先輩から#ifdef
が #if defined()
の事であり、マクロ定義の有無を判定するdefined
演算子がある事を教えてもらいました。
以下のようにします。
#if defined(CONDITION1) || defined(CONDITION2)
地道に言語機能を調べていくのも大事ですね。