#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"