Diagnostic directives - cppreference.com (original) (raw)
Shows the given error message and renders the program ill-formed, or given warning message without affect the validity of the program(since C23).
[edit] Syntax
| #error diagnostic-message | (1) | |
| #warning diagnostic-message | (2) | (since C23) |
[edit] Explanation
After encountering the
#errordirective, an implementation displays the message diagnostic-message and renders the program ill-formed (the compilation stops).Same as (1), except that the validity of the program is not affected and the compilation continues.
diagnostic-message can consist of several words not necessarily in quotes.
[edit] Notes
Before its standardization in C23, #warning has been provided by many compilers in all modes as a conforming extension.
[edit] Example
#if STDC != 1
error "Not a standard compliant compiler"
#endif #if STDC_VERSION >= 202311L
warning "Using #warning as a standard feature"
#endif #include <stdio.h> int main (void) { printf("The compiler used conforms to the ISO C Standard !!"); }
Possible output:
The compiler used conforms to the ISO C Standard !!
[edit] References
C23 standard (ISO/IEC 9899:2024):
6.10.5 Error directive (p: TBD)
C17 standard (ISO/IEC 9899:2018):
6.10.5 Error directive (p: 126-127)
C11 standard (ISO/IEC 9899:2011):
6.10.5 Error directive (p: 174)
C99 standard (ISO/IEC 9899:1999):
6.10.5 Error directive (p: 159)
C89/C90 standard (ISO/IEC 9899:1990):
3.8.5 Error directive