關於C語言的條件編譯

時間 2022-12-03 05:10:31

1樓:匿名使用者

作用一:編譯生成的可執行**或者只包含程式段1 或者只包含程式段2 ,可執行程式大小會變小;

作用二:可以靈活的通過巨集定義識別符號實現同一函式的不同版本,例如#ifdef 識別符號

func1(...)

#else

func1(...)

#endif

這樣func1函式通過巨集定義可以有不同的實現

2樓:

其用法類似於if else語句;

當「#ifdef id」中的識別符號在前邊已經定義過(如#define id),那麼執行「程式段1」,否則執行「程式段2」;

藉此可以控制程式的版本。比如,同一段程式有兩個版本,分別使用程式段1和程式段2,就可以通過是否在你給的這段**前邊加上#define id語句來告訴編譯器你需要哪段程式。

在大型程式中,通常需要載入多個模組。利用這種表達方法可以使模組的選擇更方便,只改動幾行即可。

3樓:

# ifdef 識別符號

程式段1

#else

程式段2

#endif

起作用是:當識別符號已被定義過(一般用#命令定義),則對程式段1進行編譯,否則編譯程式段2。

4樓:匿名使用者

用#if 0

...#endif

還可以注釋掉大段的**

/*...*/不能注釋掉本身包含*/的**(/**/不能巢狀)

C語言中的條件編譯問題,C語言中條件編譯的例項

先解釋下源檔案目錄 原始檔就是你的c檔案,源檔案目錄就是c檔案所在的目錄,這明白吧!一般比如說有個led專案,我要建led.c led.h 就就可以 include led.h 帶尖括號的一般是你用的編譯器已經設定好的,有固定的目錄。比如你 include寫成了 include intrins.h ...

C語言的編譯器是用什麼語言寫的,c語言編譯器是用什麼於語言寫的

理論上,c語言的編譯器,用什麼語言寫都可以的 如果已經有乙個不太好的c語言編譯器,那麼完全可以用c語言寫個更好的c語言的編譯器 不過,更大的可以是用另外的語言寫的,如彙編 c語言編譯器是用什麼於語言寫的 第乙個c語言編譯器應該是用彙編寫的,但是第乙個成熟的c語言編譯器應該是由彙編和c語言共同寫的。編...

關於c編譯錯誤的問題,關於C 編譯錯誤的乙個問題

c 中所有類中的靜態變數宣告,需要對其進行定義。你需要找乙個cpp檔案,在你的例子中,最好是csingleton.cpp 中,加上一行 static csingleton csingleton m pinstance null 樓下兩個說的都不對哦,對c 的理解有問題。並不是需要初始化。類的定義中的...

關於C語言的問題,關於c語言問題

先說明一點,c語言中巨集和函式有些差別,巨集是 第乙個例子,double 1 2 這個呼叫實際上是2 1 2,看,x被為1 2,然後根據運算子的規則 實際上應該說是優先順序 先運算2 1,再加上2,所以結果是4。第二個例子就更簡單了,同樣是,toupper s i 這個呼叫,實際上它的 就是 a s...

關於用vc60寫c語言編譯沒問題連線有問題

我覺的是你在裝編譯器的時候沒後將相應的可執行檔案裝上 你編譯器裡沒有 當然就不能連線了 vc 6.0編譯c語言,編譯顯示無錯誤,為什麼結果不對呢?麻煩高手指點,是不是編譯器本身有問題,輸入表示式時運算子與數字空個空格 有一句寫錯了 改成scanf i c i v,c,n 這樣輸入2 5就沒問題了輸出...