轉載 : 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 可以用來避免這種錯誤,同時在代碼中留下暫時不用,但可能有價值的代碼。