Условная компиляция в Delphi 7

Иногда программисту нужно управлять дерективами процессора и компиляцией программного кода. Для этого в Delphi реализована условная компиляция. Существуют два пути построения условной компиляции.

Первая конструкция:


{$IFxxx}

. . . . .

{$ENDIF}


В ней реализован метод проверки некоторого условия. Как мы видим, она начинается с условной директивы {$IFxxx} и заканчивается {$ENDIF}. Если условие в конструкции после $IF не выполняется, то конструкция не компилируется. Можно сделать вывод о второй конструкции на основании $IF. Значит можно поставить {$ELSE}.

Вторая конструкция:


{$IFxxx}

. . . . .

{$ELSE}

. . . . .

{$ENDIF}


Условная компиляция во втором случае ведет себя также как и полный условный оператор в теле программы. Соответственно если истина, то после {$ELSE} не компилируется. Иначе все наоборот.

Условные директивы. Задаем само условие идентификатора: {$DEFINE}. Сама условная директива будет иметь вид: {IFDEF условный оператор} . Она проверяет, был определен указанный в ней условный идентификатор в конструкции вида {$DEFINE условный идентификатор}.

Таким образом, если задан условный иденификатор в {$DEFINE}, то директива {$IFDEF} будет проверять на истину и фрагмент будет компилироваться. Указанием директивы {$UNDEF} вместо {$DEFINE} можно добиться от {$IFDEF} ложь и фрагмент кода не будет откомпилирован.

Условные идентификаторы должны начинаться с буквы и может быть любой длины. Предопределены некоторые идентификаторы: VER150, MSWINDOWS, WIN32, LINUX, CPU386, CONSOLE, CONDITIONAL EXPRESSIONS. По названимям можно понять, что они способствуют настройке приложения на различные платформы.

{$IFOPT ключевая опция} возвращает истину, если включена указанная опция. Опции вы можете посмотреть на этой странице. Конструкция вида


{$DEFINE Debug}

{$IFDEF Debug}

оператор отладки

{$ENDIF}


дает возможность вводить в процессе отладки различные отладочные печати.

. delphi ifdef
. delphi ifdef
Комментирование и размещение ссылок запрещено.