2.1. Условные операторы

На верх  Назад  Вперёд

Правила использования условных операторов такие же, как в Turbo Pascal или Delphi. Объявление идентификатора должно быть следующим:

{$define Symbol}

С этого момента в вашем коде компилятору известен идентификатор Symbol. Также как и в Pascal, идентификаторы не чувствительны к регистру символов.

Вы можете также определить идентификатор в командной строке. Опция -dSymbol определяет идентификатор Symbol. Вы можете указать множество идентификаторов в командной строке.

Отменить объявление существующего идентификатора можно следующим образом:

{$undef Symbol}

Если идентификатор не существует, то эта директива ничего не делает. Если идентификатор предварительно объявлен, то идентификатор будет удалён, и не будет больше распознаваться в коде, который последует за оператором {$undef …}.

Вы можете также удалить объявленный идентификатор с помощью переключателя командной строки -u.

Для использования условной компиляции, в зависимости от того, объявлен идентификатор или нет, вы можете заключить участок кода в пару операторов {$ifdef Symbol} … {$endif}.

Например, следующий коде никогда не будет компилироваться:

{$undef MySymbol}
{$ifdef Mysymbol}
DoSomething;

{$endif}

Аналогичным образом вы можете заключить участок кода в пару операторов {$ifndef Symbol}{$endif}. Тогда код, находящийся между этой парой операторов, будет компилироваться только в том случае, если используемый идентификатор не существует. Например, в следующем коде вызов DoSomething будет всегда компилироваться:

{$undef MySymbol}
{$ifndef Mysymbol}
DoSomething;

{$endif}

Вы можете совместить две альтернативы в одной структуре, например:

{$ifdef Mysymbol}
DoSomething;
{$else}
DoSomethingElse
{$endif}

В этом примере, если MySymbol существует, то вызов DoSomething будет компилироваться. Если не существует, то будет компилироваться вызов DoSomethingElse.

2.1.1. Предопределённые идентификаторы