マクロの数値が等しいかどうかをチェックする方法はありますか?
私は何かしたいです
#define choice 3
#if choice == 3
....
#endif
#if choice == 4
...
#endif
Cマクロはこのようなものをサポートしていますか?
確かにそれはうまくいくはずです。 http://gcc.gnu.org/onlinedocs/cpp/If.html#If を参照してください
その参照は正確ですが、「標準形式」で書かれています。抽象的な例はありません。
コードを記述するもう1つの方法は、チェーンされた#Elif
ディレクティブを使用することです。
#if choice == 3
...
#Elif choice == 4
...
#else
#error Unsupported choice setting
#endif
choice
が#defined
ではない場合、コンパイラー(プリプロセッサー)はそれを0
の値を持つものとして扱います。
私が知る限り、それはうまくいくはずです。どのコンパイラを使用していますか?
PS:参考までに、定義名は通常大文字で書かれています!
#define CHOICE 3