17 Директивы условной
компиляции. Директива #Include
-Командная строка компилятора вида
#if
выражение
проверяет, является ли результатом вычисления выражения не-ноль. Выражение должно быть константным выражением, есть дополнительные ограничения: константное выражение не может содержать sizeof или перечислимые константы. Кроме обычных операций C может использоваться унарная операция defined. В случае применения к идентификатору она дает значение не-ноль, если этот идентификатор был ранее определен с помощью #define и после этого не было отмены определения с помощью #undef; иначе ее значение 0.
-Командная строка вида
#ifdef
идент
проверяет, определен ли идентификатор в препроцессоре в данный момент; то есть, был ли он объектом командной строки #define.
-Командная строка вида
#ifndef
идент
проверяет, является ли идентификатор неопределенным в препроцессоре в данный момент.
После строки каждого из трех видов может стоять произвольное количество строк, возможно, содержащих командную строку
#else
и далее до командной строки
#endif
Если проверенное условие истинно, то все строки между #else и #endif игнорируются. Если проверенное условие ложно, то все строки между проверкой и #else или, в случае отсутствия #else, #endif, игнорируются.
Эти конструкции могут быть вложенными.
Директива #Include
# include «маршрут»
<маршрут>
Максимальное число уровней вложенности не более 10.
Отладочные директивы.
#Line конст[имя файла]
Данный параметр изменяет нумерацию строк в программе для компиляции.
__LINE__ - текущая строка
__FILE__ - текущий файл
#ERROR сообщение
Для диагностики ошибок в программе.