Preprocessor は、コンパイルの次のステップの前に、ソースコードでいくつかの処理を実行します。
プリプロセッサは、テキスト・ファイルを解析し、特定の変換に送信するプログラムです。
これらの変換には、ファイルの組み込み、テキスト・ブロックの削除、またはテキスト・ブロックの置換があります。
プリプロセッサは、スキャンしたファイルで読み取る特定のコマンドを介して、これらの操作を実行します。
プリプロセッサは、ファイルを処理してコンパイルするために、コンパイルする前に、コンパイラによって自動的に呼び出されます。
プリプロセッサ・コマンド
すべてのプリプロセッサ・コマンドは、ポンド記号 ("#") を持ち、行の先頭から始まります。
プリプロセッサを制御するすべてのコマンドを知るためには、 '
プリ・プロセッサ' を参照してください。
コマンドの主な種類は次のとおりです:
- ファイルの包含:
テキストファイルを含めると、他の多くのファイル(たとえば、型、定数、関数など)に共通するテキストを因子分解できます。
共通テキストは、通常、拡張子が".bi" のファイルに入れられます。
構文:
#include [once] "file"
file is the name of the file to include.
インクルードされたファイルも、プリプロセッサによって処理されます。
ファイルを含めることで、リンク処理にライブラリを含めることもできます。
構文:
#inclib "libname"
libname is the name of the library file to include in the linking process.
- テキスト置換:
プリプロセッサを使うと、プログラムで使用される識別子を定義して、その値でテキスト置換できます。
構文:
#define identifier body
where identifier is the identifier that will be used in the rest of the program, and body will be the replacement text that the preprocessor will use.
プリプロセッサが、識別子
identifier に出会うと、プログラムの残りの部分で、テキスト
body に置き換えます(以前に定義された
identifier を未定義にする
#undef identifier)。
定義は
scope されます(定義されたスコープでのみ、表示されます)。
一方、名前空間は、定義の可視性に影響を与えません。
- コンパイル定数と条件付きコンパイル:
- マクロ:
このセクション の最後のページ '
Macros' を参照ください。
- その他のコマンド:
プリプロセッサは、上記以外のアクションを実行できます。
これらのアクションを実行するための指示は次のとおりです:
例
#include と
#define を使う例:
#include "vbcompat.bi"
#define TEMPLATE "hh:mm:ss yyyy/mm/dd"
Dim As String * Len(TEMPLATE) hour_date
hour_date = Format(Now, TEMPLATE)
Print hour_date, "(" & TEMPLATE & ")"
Sleep
参照