2020年4月5日 星期日

[C] #ifdef #ifndef #elif #else #endif #if defined

1.#ifdef
a.只有一個條件
#ifdef 識別字
   /*若識別字被定義,編譯器會編譯此部分程式*/
#else
   /*否則編譯此部分程式*/
#endif
#if defined(CONDITION_1)
   /*若識別字被定義,編譯器會編譯此部分程式*/
#elif
   /*否則編譯此部分程式*/
#endif
/*Example*/
#define CONDITION_1
#ifdef CONDITION_1
   /*編譯此部分程式*/
#else
   /*不編譯此部分程式*/
#endif

b.兩個以上的條件
#if defined(CONDITION_1) && defined(CONDITION_2)
   /*若條件達成,編譯器會編譯此部分程式*/
#endif

2.ifndef
#ifndef 識別字
   /*若識別字沒有被定義,編譯器會編譯此部分程式*/
#else
   /*否則編譯此部分程式*/
#endif

3.undef
#undef 識別字
   /*取消定義*/

4.#if...#elif...
#if 條件式1
   /*若條件式1成立(true),編譯器會編譯此部分程式*/
#elif 條件式2
   /*若條件式2成立(true),編譯器會編譯此部分程式*/
#else
   /*若上述條件皆不成式,則會編譯此部分程式*/
#endif

/*Eaxmple*/
#define CONDITION 1

#if CONDITION == 1
  printf("Condition:1"); //會執行此行程式
#elif CONDITION == 2
   printf("Condition:2");
#else
   printf("Condition:other");
#endif



 #ifdef #ifndef #elif #else #endif#C語言#C語言關鍵字#關鍵字#Key Word#C語言教學#教學

沒有留言:

張貼留言