ホームページ >バックエンド開発 >C++ >C/C++ 前処理ディレクティブ

C/C++ 前処理ディレクティブ

王林
王林転載
2023-09-08 16:01:021196ブラウズ

C/C++ 预处理指令

C または C では、(#) 記号で始まるさまざまな行が見つかります。これらは前処理ディレクティブと呼ばれます。これらの行は、コードをコンパイルする前の前処理段階で処理されます。ここでは、3 つの異なるタイプの前処理ディレクティブを見ていきます。これらは -

  • 条件付きコンパイル
  • 行制御
  • エラー ディレクティブ

プログラム内でいくつかのマクロを定義することがあります。条件付きコンパイル ディレクティブを使用します。マクロが定義されているかどうかを確認できます。私たちはそれらをコントロールすることもできます。したがって、マクロが定義されている場合は特定のタスクが実行され、そうでない場合は他の同様のタスクが実行されます。

条件付きコンパイル ディレクティブは、#ifdef-#elif-#else-#endif に似ています。各 #ifdef ブロックは #endif で終わる必要があります。 #elif または #else はオプションです。

#include <iostream>
#define MY_MACRO 10
using namespace std;
int main() {
   #ifdef MACRO
   cout << "MACRO is defined" << endl;
   #elif MY_MACRO
   cout << "MY_MACRO is defined, value is: " << MY_MACRO;
   #endif
}

出力

MY_MACRO is defined, value is: 10

#lineと入力して行制御ディレクティブを使用します。優先行番号に関してエラーが発生する場合があります。このコマンドを使用して行番号を更新できます。これを配置して現在の行を 200 に変更すると、それ以降の行は 201 から移動します。

#include <iostream>
using namespace std;
int main() {
   cout<< "Current line is: " << __LINE__ << endl;
   #line 200
   cout << "Hello" << endl;
   cout << "World" << endl;
   cout<< "Current line is: " << __LINE__ << endl;
}

出力

Current line is: 5
Hello
World
Current line is: 202

error ディレクティブは、コンパイル前にエラーを表示するために使用されます。マクロは定義されていることが前提となりますが、定義されていない場合はエラーメッセージが表示される場合があります。これは #error を使用して実現できます。

#include <iostream>
using namespace std;
int main() {
   #ifdef MY_MACRO
   cout << "MY_MACRO is defined, value is: " << MY_MACRO;
   #else
   #error MY_MACRO should be defined
   #endif
}

出力

#error MY_MACRO should be defined

以上がC/C++ 前処理ディレクティブの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。