C 語言中#if 0 [轉]

轉載 : https://www.cnblogs.com/scf141592/p/7514068.html , 非原創

常見編譯指令

在C語言中有條件編譯指令,常見的有:

  #define 定義宏
  #undef 取消已定義的宏  
  #if 如果給定條件爲真,則編譯下面代碼
  #ifdef 如果宏已經定義,則編譯下面代碼
  #ifndef 如果宏沒有定義,則編譯下面代碼  
  #elif 如果前面的#if給定條件不爲真,當前條件爲真,則編譯下面代碼,其實就是else if的簡寫
  #endif 結束一個#if……#else條件編譯塊
  #error 停止編譯並顯示錯誤信息

#if 0....#endif 的例子

#include <stdio.h>
 
int main()
{
#if 0
    printf("this is never here!\n");
#endif
    printf("#if .....#endif 之間的語句永遠不會被執行!\n");
    return 0;
}

  在涉及到C語言的項目時,可能有人會注意到裏面出現了#if 0這樣的語句,既然裏面的語句永遠不會被執行,那爲什麼要留下這樣的代碼呢?
看下面的例子:


  這樣的代碼在編譯的時候會出錯,因爲/* */ 跟最近的匹配,所以出現了錯誤。使用#if 0 .....#endif 可以用來避免這種錯誤,同時在代碼中留下暫時不用,但可能有價值的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章