条件コンパイルの使用方法

1174 ワード

一、以下のように、識別子がdefineによって渡された場合、コンパイラはコードセグメント1をコンパイルし、そうでなければコードセグメント2をコンパイルする
#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; }