開発 プリプロセッサディレクティブとは何ですか? -techopediaからの定義

プリプロセッサディレクティブとは何ですか? -techopediaからの定義

目次:

Anonim

定義-プリプロセッサディレクティブの意味

プリプロセッサディレクティブは、#で始まるプログラムに含まれる行であり、通常のソースコードテキストとは異なります。 これらは、コンパイルの前にいくつかのプログラムを処理するためにコンパイラーによって呼び出されます。 プリプロセッサディレクティブはソースコードのテキストを変更し、結果はこれらのディレクティブのない新しいソースコードになります。


C#の前処理は概念的にはC / C ++の前処理と似ていますが、2つの側面が異なります。 まず、C#での前処理には、コンパイル前にプリプロセッサを実行するための別の手順は含まれません。 字句解析フェーズの一部として処理されます。 第二に、マクロの作成には使用できません。 さらに、新しいディレクティブ#regionおよび#unregionがC#に追加され、以前に使用されていたいくつかのディレクティブが除外されました(#includeは、アセンブリを含めるために "using"に置き換えられた注目すべきディレクティブです)。


Javaはプリプロセッサディレクティブをサポートしていません。

Techopediaはプリプロセッサディレクティブを説明します

通常、プリプロセッサディレクティブは、ソースコードの先頭の文字「#」で始まる別の行に配置され、その後にディレクティブ名とオプションの空白が続きます。 プリプロセッサディレクティブの宣言の同じ行のコメントを使用する必要があり、次の行をスクロールできないため、区切りコメントを使用できません。 プリプロセッサディレクティブステートメントはセミコロン(;)で終わってはなりません。 プリプロセッサディレクティブは、コンパイル中に引数としてソースコードまたは共通行で定義できます。


C#で使用できるプリプロセスディレクティブの例は次のとおりです。

  • #defineおよび#undef:条件付きコンパイルシンボルをそれぞれ定義および定義解除します。 これらのシンボルはコンパイル中にチェックでき、ソースコードの必要なセクションをコンパイルできます。 シンボルのスコープは、シンボルが定義されているファイルです。
  • #if、#elif、#else、および#endif:条件に基づいてソースコードの一部をスキップします。 条件付きセクションは、完全なセットを形成するディレクティブでネストできます。
  • #line:エラーおよび警告用に生成される行番号を制御します。 これは主に、メタプログラミングツールでテキスト入力からC#ソースコードを生成するために使用されます。 一般に、コンパイラが出力で報告する行番号とソースファイル名を変更するために使用されます。
  • #errorおよび#warning:エラーと警告をそれぞれ生成します。 #errorはコンパイルを停止するために使用され、#warningはコンソール内のメッセージでコンパイルを続行するために使用されます。
  • #regionおよび#endregion:ソースコードのセクションを明示的にマークします。 これらにより、Visual Studio内で展開および折りたたみが可能になり、読みやすくなり、参照しやすくなります。
プリプロセッサディレクティブとは何ですか? -techopediaからの定義