诊断指令
出自cppreference.com
< c | preprocessor
顯示給定的錯誤消息並使得程序非良構,或給定的警告消息而不影響程序的合法性(C23 起)。
語法
#error 診斷消息
|
(1) | ||||||||
#warning 診斷消息
|
(2) | (C23 起) | |||||||
解釋
1) 實現在遇到
#error 指令後,顯示消息 診斷消息,並令程序非良構(停止編譯)。2) 同 (1),但不影響程序的合法性並且編譯繼續。
診斷消息 可由多個詞組成,不必在引號中。
註解
在其於 C23 的標準化前,#warning 已經被許多編譯器作為遵從的擴展提供。
示例
運行此代碼
#if __STDC__ != 1
# error "不是遵从标准的编译器"
#endif
#if __STDC_VERSION__ >= 202311L
# warning "使用标准功能特性 #warning"
#endif
#include <stdio.h>
int main (void)
{
printf("所用编译器遵从 ISO C 标准!!");
}
可能的輸出:
所用编译器遵从 ISO C 标准!!
引用
- C23 標準(ISO/IEC 9899:2024):
- 6.10.5 Error directive (第 TBD 頁)
- C17 標準(ISO/IEC 9899:2018):
- 6.10.5 Error directive (第 126-127 頁)
- C11 標準(ISO/IEC 9899:2011):
- 6.10.5 Error directive (第 174 頁)
- C99 標準(ISO/IEC 9899:1999):
- 6.10.5 Error directive (第 159 頁)
- C89/C90 標準(ISO/IEC 9899:1990):
- 3.8.5 Error directive
參閱
診斷指令的 C++ 文檔
|