11.6  Директива #error

Директива #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