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    сообщение

Для диагностики ошибок в программе.

Hosted by uCoz