Директива предпроцессора:
#error <последовательность_лексем>
приводит к выдаче диагностического сообщения в виде последовательности лексем. Естественно применение директивы #еrror совместно с условными препроцессорными командами. Например, определив некоторую препроцессорную переменную NAME
#define NAME 5
в дальнейшем можно проверить ее значение и выдать сообщение, если у NAME другое значение:
#if (NAME != 5) #error NAME должно быть равно 5!
Сообщение будет выглядеть так:
fatal: <имя_файла> <номер_строки> #error directive: NAME должно быть равно 5!