Директива #error имеет следующий синтаксис:
#error сообщение-об-ошибке
Директива генерирует сообщение:
Error: имя-файла номер-строки: Error directive: сообщение
Сообщение представляет собой любую строку (не заключенную в кавычки!), которая может содержать макросы, расширяемые препроцессором. Обычно директива применяется, чтобы обеспечить определение некоторого идентификатора, например:
#ifndef WIN_VERSION
#error He определена версия Windows!
#endif
Данная директива обычно встраивается в условные конструкции препроцессора, которые отслеживают какие-либо нежелательные условия компиляции. Обычно это условие "ложно".
Если условие "истинно", то компилятор может выдать сообщение об ошибке и прекратить работу. Для этого директива #error помещается в условную ветвь, которая дает для искомого нежелательного условия результат "истина". Например, вы определили #define MYVAL, принимающую значения 0 или 1. Затем можно включить в исходный код условную директиву, которая будет проверять MYVAL на предмет неверного значения. Например:
#if (MYVAL != 0 && MYVAL != 1)
#error MYVAL must be defined to either 0 or 1
#endif