編譯程序時,只要遇到 #error 就會跳出一個編譯錯誤,其目的就是保證程序是按照你所設想的那樣進行編譯的。
舉個例子:
程序中往往有很多的預處理指令
#ifdef XX
...
#else
#endif
當程序比較大時,往往有些宏定義是在外部指定的(如makefile),或是在系統頭文件中指定的,當你不太確定當前是否定義了 XX 時,就可以改成如下這樣進行編譯:
#ifdef XX
...
#error "XX has been defined"
#else
#endif
如果 XX 被定義了的話,編譯的時候編譯器就會報錯,error c320 "XX has been defined".
所以 用#error 可以用於檢查一個宏是否已經被定義了。