診斷指令
來自 cppreference.com
顯示給定的錯誤訊息並使程式格式錯誤,或者顯示給定的警告訊息而不影響程式的有效性(C++23 起)。
目錄 |
[編輯] 語法
#error 診斷訊息 |
(1) | ||||||||
#warning 診斷訊息 |
(2) | (C++23 起) | |||||||
[編輯] 解釋
1) 在遇到 #error 指令後,實現會顯示訊息 診斷訊息 並使程式格式錯誤(編譯停止)。
2) 與 (1) 相同,只是程式有效性不受影響且編譯繼續。
診斷訊息 可以由多個片語成,不一定在引號內。
[編輯] 注意
在 C++23 中標準化之前,許多編譯器在所有模式下都將 #warning 作為符合標準的擴充套件提供。
[編輯] 示例
執行此程式碼
#if __STDC_HOSTED__ != 1 # error "Not a hosted implementation" #endif #if __cplusplus >= 202302L # warning "Using #warning as a standard feature" #endif #include <iostream> int main() { std::cout << "The implementation used is hosted\n"; }
可能的輸出
The implementation used is hosted
[編輯] 參考
- C++23 標準 (ISO/IEC 14882:2024)
- 15.8 錯誤指令 [cpp.error]
- C++20 標準 (ISO/IEC 14882:2020)
- 15.8 錯誤指令 [cpp.error]
- C++17 標準 (ISO/IEC 14882:2017)
- 19.5 錯誤指令 [cpp.error]
- C++14 標準 (ISO/IEC 14882:2014)
- 16.5 錯誤指令 [cpp.error]
- C++11 標準 (ISO/IEC 14882:2011)
- 16.5 錯誤指令 [cpp.error]
- C++03 標準 (ISO/IEC 14882:2003)
- 16.5 錯誤指令 [cpp.error]
- C++98 標準 (ISO/IEC 14882:1998)
- 16.5 錯誤指令 [cpp.error]
[編輯] 另請參閱
C 文件,關於 診斷指令
|