|
||||
|
11.3 Условная Компиляция Командная строка компилятора вида #if выражение проверяет, является ли результатом вычисления выражения не-ноль. Выражение должно быть константным выражением, котрые обсуждаются в #12. Кроме обычных операций С++ может ипользоваться унарная операция defined. При применении к идетификатору она дает значение не-ноль, если этот идентификатор был ранее определен с помощью #define и после этого не было отмены определения с помощью #undef; иначе ее значение 0. Командная строка вида #ifdef идентификатор проверяет, определен ли идентификатор в препроцессоре в данный момент; то есть, был ли он объектом командной строки # define. Командная строка вида #ifndef идентификатор проверяет, является ли идентификатор неопределенным в препроцессоре в данный момент. После каждого из трех видов может стоять произвольное количество строк, возможно, содержащих командную строку #else и далее до командной строки #endif Если проверенное условие истинно, то все строки между #else и #endif игнорируются. Если проверенное условие ложно, то все строки между проверкой и #else или, в случае отсуттвия #else, #endif, игнорируются. Эти конструкции могут быть вложенными. |
|
||