#ifdef 文に対してより一般的な #if 文も用意されてい ます。この場合、#if の後ろには定数式を指定します。定数式 には、プログラム中の変数などは使えない点に注意しましょう(プログラム がコンパイルされる以前に処理されるのですから当然ですね)。 最も良く使われるのが、defined() 文と共に使う場合です。 defined() はマクロ定義がされいているか否かを判別します。 マクロ定義がされていない場合の判別には、否定演算 ! と共に !defined() のように使います。例えば、次の例では マクロ定義 Square または square が定義されている場合に有効になるような 例です。 #if defined(Squre) || defined(squre) #define sq(x) ((x)*(x)) #define Squre #endif