defined
条件コンパイルの概要:インデックス への移動
構文
defined 識別子 defined ( 識別子 )
解説
識別子がすでに #define を使って定義されているかどうかをテストするには,defined 演算子を使います。プリプロセッサ演算子 defined は、以下の構文のように定数式で使用できます。
defined [(] 識別子 [)]
defined 演算子が使えるのは,以下のように #if および #elif の式の中だけに限られています。
#if defined 識別子 #elif defined ( 識別子 )
前に defined で定義されたシンボルが定義解除(#undef を使用)されていない場合,defined の評価は 1(true)となり,定義解除されている場合には 0(false)となります。
defined は #ifdef と同じ機能を持っています。
#if defined(mysym)
これは次と同じです。
#ifdef mysym
defined は,#if 指令の後に続く複雑な式の中で繰り返し使えるというメリットがあります。たとえば,次のように使えます。
#if defined(mysym) && !defined(yoursym)