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

  1. After encountering the #error directive, an implementation displays the message diagnostic-message and renders the program ill-formed (the compilation stops).

  2. 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

[edit] See also