簡體   English   中英

預處理器指令 #error 和 #warning 之間的區別

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM