#define
識別子を指定文字列に置換するために定義します。
書式
#define 識別子 [(パラメーター [, パラメーター])] 置換文字列
パラメーター
- 識別子
- 文字列パラメーターの省略のキーワードです。識別子の規則は次のとおりです。
英字で始まり、英数字とアンダースコア( _ )を使用して作成します。
識別子には、スペースやタブは使えません。
- パラメーター
- 置換文字列に使われる、1つ、または複数の変数を指定し、マクロのようにダイナミックな定義メカニズムを提供します。#defineコマンドでは、8個までのパラメーターが使えます。それぞれのパラメーターをカンマで区切り、パラメーターリストを括弧の中に入れてください。
- 置換文字列
- プログラムがコンパイルされたときに識別子と置き換えられる置換文字列です。置換文字列に関する規則は次のとおりです。
置換文字列では、スペースやタブが使えます。
ステートメントとともに使われる識別子は置換文字列として使えません。
コメント記号 " ' "を使用すると、その後に続く文字はコメントとして判断され、置換文字列には含まれません。
置換文字列は省略できます。その場合、指定した識別子は、何もないもの、またはヌル文字列に置換されます。これにより、その識別子はプログラムから削除されます。
解説
#define命令により、指定された識別子はプログラム内で置換されます。指定した識別子が見つかるたびに、置換文字列に置き換えられてコンパイルします。しかし、ソースコード自体は、置換文字列ではなく、識別子を含んだ形で残されます。それは、コード自体を読むとき、識別子のままの方が、文字列に置換されてしまったコードを読むよりはるかに読みやすいからです。
定義された識別子は、#ifdef や #ifndef コマンドと組み合わせて、コンパイルするかしないかの条件として使用できます。
パラメーターが指定されれば、識別子はマクロとして使うことができます。
注意
#defineを変数宣言やラベル置換に使うと、エラーになります
変数宣言のために #define命令を使うと、エラーになりますので注意してください。
参照
#ifdef, #ifndef
#define使用例
'デバッグモードの場合は次の行を非コメント化
' #define DEBUG
Input #1, A$
#ifdef DEBUG
Print "A$ = ", A$
#endif
Print "The End"
#define SHOWVAL(x) Print "var = ", x
Integer a
a = 25
SHOWVAL(a)