条件コンパイルの使用方法
1174 ワード
一、以下のように、識別子がdefineによって渡された場合、コンパイラはコードセグメント1をコンパイルし、そうでなければコードセグメント2をコンパイルする
Eg:判定TEST_Tが定義されているかどうか、以下demoでTEST_Tが定義されているので「コードセグメント1」を印刷
二、以下のように、識別子がdefineに過ぎない場合、コンパイラはコードセグメント1をコンパイルし、そうでない場合、コードセグメント2をコンパイルする
Eg:TEST_Tが定義されていなければ、コードセグメント1"が印刷される
三、似ている
Eg:以下の判断マクロTEST_Tが定義されているかどうか、「コードセグメント1」が印刷される
#ifdef
1
#else
2
#endif //
Eg:判定TEST_Tが定義されているかどうか、以下demoでTEST_Tが定義されているので「コードセグメント1」を印刷
#include
#define TEST_T
int main(void)
{
#ifdef TEST_T
printf(" 1
");
#else
printf(" 2
");
#endif
return 0;
}
二、以下のように、識別子がdefineに過ぎない場合、コンパイラはコードセグメント1をコンパイルし、そうでない場合、コードセグメント2をコンパイルする
#ifndef
1
#else
2
#endif
Eg:TEST_Tが定義されていなければ、コードセグメント1"が印刷される
#include
int main(void)
{
#ifndef TEST_T
printf(" 1
");
#else
printf(" 2
");
#endif
return 0;
}
三、似ている
#if
1
#else
2
#endif
Eg:以下の判断マクロTEST_Tが定義されているかどうか、「コードセグメント1」が印刷される
#include
#define TEST_T
int main(void)
{
#if defined(TEST_T) //defined
printf(" 1
");
#else //elif defined(TEST_T_2)
printf(" 2
");
#endif
return 0;
}