C語言中的條件編譯是什麼?


C語言中的條件編譯是什麼?

C程式語言中,幾個指令控制程式程式碼部分的選擇性編譯。它們如下所示:

  • #if
  • #else
  • #elif
  • #endif

#if 的一般形式如下所示:

#if constant_expression
   statement sequence
#endif

#else 的工作方式與 C 關鍵字 else 非常相似。

#elif 表示“else if”,並建立了一個 if else-if 編譯鏈。

除其他外,#if 提供了一種“註釋掉”程式碼的替代方法。

例如,

#if 0
   printf("#d", total);
#endif

在這裡,編譯器將忽略 printf("#d", total);

#ifdef 和 #ifndef

#ifdef 表示“如果已定義”,並以 #endif 結尾。

#indef 表示“如果未定義”。

#undef

#undef 刪除先前定義的定義。

#line

#line 更改 __LINE__ 的內容,__LINE__ 包含當前編譯程式碼的行號,以及 __FILE__,它是一個包含正在編譯的原始檔名稱的字串。兩者都是編譯器中的預定義識別符號。

#pragma

#pragma 指令是實現定義的指令,允許向編譯器提供各種指令。

示例

以下是 C 程式演示 #ifdef、#ifndef、#else 和 #endif

 線上演示

# include <stdio.h>
# define a 10
void main(){
   #ifdef a
   printf("
Hello I am here..");    #endif    #ifndef a    printf("
Not defined ");    #else    printf("
R u There ");    #endif }

輸出

執行上述程式時,會產生以下結果:

Hello I am here..
R u There

更新於: 2024年6月20日

11K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.