Ifdef: условная компиляция |
<оператор-условной-компиляции-IFDEF> = (#ifdef <имя> | #ifndef <имя>) <текст-1> {(#elifdef | #elifndef)<имя> <текст-2>} [#else [<выражение-else>] <текст-3>] #end
Операторы условной компиляции позволяют выбирать из входного потока некоторую часть текста в зависимости от того, было ли ранее определено макроопределение с идентификатором <имя> или нет.
Оператор #ifdef передает базовому компилятору порцию входного потока <текст-1>, если идентификатор <имя> имеет определенное значение (возможно, пустое) в данный момент.
Оператор #ifndef передает базовому компилятору порцию входного потока <текст-1>, если идентификатор <имя> не определен в данный момент.
Оператор (#elifdef | #elifndef) <имя> <текст-2> является сокращенной записью группы операторов:
#else (#ifdef | #ifndef) <имя> <текст-2> #endif
Оператор #else выполняется, если не было выполнено ни одно из предыдущих условий.