The #error directive takes a string as an argument and produces an error message at compile-time. Errors produced by this directive are displayed as normal compiler errors.
Like the #warning directive, this directive is most useful for detecting pre-defined constraints and inconsistencies during preprocessing of the source file.
Syntax
#error <message string>
The message string identifier shown above indicates the error message to be displayed. The following example illustrates use of the #error directive:
#if DEBUG
...
#elif RETAIL
...
#else
#error DEBUG or RETAIL must be defined!
#endif
When the error above is encountered, the following line will be output:
#error 'DEBUG or RETAIL must be defined' (J0500)