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 サイトの他の関連記事を参照してください。