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

王林
リリース: 2023-09-08 16:01:02
転載
1157 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート