[英]Difference between preprocessor directives #error and #warning
在這兩個預處理器代碼中,它們的區別是什么,它們是如何使用的?
#error "¡ERROR GRAVISIMO!"
#warning "ABC está obsoleto. Use XYZ en su lugar."
#error
用於創建錯誤,從而阻止程序編譯。 #warning
會產生編譯器警告,但不會阻止程序編譯。 以下是兩個屏幕截圖,說明了這一點:
錯誤:
警告:
請注意,在第一種情況下構建失敗,在第二種情況下構建成功完成。
#error
是用來當你想從編譯在一定的條件下,通常是因為該程序將無法正常工作,然后不停的程序, #warning
使用,如果該程序應該能夠編譯,但可能無法正常工作,你想幫助用戶了解原因。
如果在 C++ 模式而不是 C 模式下編譯程序,以下示例會產生錯誤或警告。 請注意,C++ 編譯器會自動創建宏__cplusplus
。
錯誤:
#ifdef __cplusplus
#error This program isn't compatible with C++!
#endif
警告:
#ifdef __cplusplus
#warning You are compiling this as a C++ program, but it's recommended to compile it as a C program.
#endif
第一個代碼用於不支持 C++ 的程序,第二個代碼用於在 C++ 中可能有奇怪行為但仍然支持它的程序。 這些當然只是如何使用#error
和#warning
示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.