#ifdef...#else...#endif

条件付コンパイルを行います。

書式
#ifdef 識別子 ...条件付コンパイルのためのソースコード
[#else]...偽の条件のためのソースコード
#endif

パラメーター

識別子
#ifdefと#elseまたは#endifの間のソースコードをコンパイルする、ユーザー定義のキーワードです。これにより、この識別子はコンパイルの条件として機能します。

解説
​#ifdef...#else...#endif は、選択されたソースコードを条件付コンパイルします。コンパイルをするかしないかの条件は、識別子によって決定されます。最初に、#ifdefは、指定された識別子が現在#defineによって定義されているかチェックします。#elseステートメントは省略可能です。

[定義されている場合] #elseステートメントが使われていれば、#ifdefと#elseの間のステートメントがコンパイルされます。#elseステートメントが使われていなければ、#ifdefと#endif 間のステートメントがコンパイルされます。

[定義されていない場合] #else ステートメントが使われていれば#elseと#endifの間のステートメントがコンパイルされます。#elseステートメントが使われていなければ、#ifdefと#endif の間のステートメントはコンパイルされず、スキップします。

参照
​#define, #ifndef

#ifdef使用例
下記は#ifdefを使ったプログラムの一例です。下記の例では、#define DEBUG 擬似命令の定義の有無によって、変数A$ の値を出力するかしないか制御できます。もし、#define DEBUG 擬似命令が、ソース中、ここで例として記載している部分より以前に使われていれば、Print A$ の行はコンパイルされ、プログラムの実行時に出力されます。しかし、文字列 "The End" は、 #define DEBUG 擬似命令にかかわらず出力されます。

'デバッグモードの場合は次の行を非コメント化
' #define DEBUG

Input #1, A$
 #ifdef DEBUG
    Print "A$ = ", A$
 #endif
Print "The End"