{$DEFINE <условный символ>} — установить условный символ;
{$IFDEF <условный символ>} — проверить установку условного символа; если символ установлен, будет компилироваться вся следующая за директивой часть программы вплоть до директив {$ELSE} или {$ENDIF}, в противном случае этот фрагмент программы будет пропущен компилятором;
{$IFNDEF <условный символ>) — проверить установку локального символа; обратная директиве {$IFDEF}, т.е. действует только в том случае, когда условный символ не установлен;
{$ELSE} — определяет начало альтернативного фрагмента программы; этот фрагмент будет компилироваться в том случае, если условный символ, проверенный предыдущей по тексту программы директивой {$IFDEF} пли {$IFNDEF}, не установлен; альтернативная часть вместе с директивой {$ELSE} может опускаться;
{$ENDIF} — ограничивает область действия директив {$IFDEF}, {$IFNDEF} или {$ELSE}.
Установить условие — это значит с помощью опции OPTIONS/COMPILER/CONDITIONAL DEFINES среды Турбо Паскаля или с помощью директивы компилятора {$DEFINE} ввести некоторое слово (условный символ), которое затем будет управлять компиляцией какого-либо фрагмента программы. Если, например, использовать в качестве условного символа слово DEBUG, то можно написать такой фрагмент программы:
{$IFDEF Debug}
WriteLn ('Отладка: х=,х);
{$ENDIF}
Теперь, если установлен (задан в среде или введен с помощью директивы {$DEFINE}) условный символ DEBUG, в программе будет откомпилирован оператор WRITELN, если этот условный символ не задан, компилятор пропустит этот оператор.
Отметим, что условные символы никак не связаны с множеством идентификаторов самой программы и недоступны ей на этапе исполнения. Для предыдущего примера нельзя написать
WriteLn (Debug) ;
если, разумеется, в программе не определена переменная или константа с этим именем.
Одновременно в программе может быть установлено сколько угодно условных символов. Для тестирования нескольких условий используется вложение условных директив компилятора, например:
{$IFDEF Var1}
{$IFDEF Var2}
a := n; {$ELSE}
a := 0;
{$ENDIF}
{$ENDIF}
В директивах {$IFDEF} или {$IFNDEF} можно использовать следующие стандартные условные символы, которые устанавливаются в среде автоматически:
VER70 — указывает версию 7.0 Турбо Паскаля (для других версий используются другие условные символы: VER40, VER50, VER55, VER60);
MSDOS — указывает на то, что программа будет исполняться под управлением операционной системы MS-DOS (PC DOS); версии Турбо Паскаля для других операционных систем не будут устанавливать этот символ;
CPU86 — указывает на то, что программа будет исполняться на ПК с микропроцессором, принадлежащим семейству Intel 80×86;
CPU87 — указывает на то, что в составе аппаратных средств ПК обнаружен (к моменту компиляции программы!) арифметический сопроцессор семейства Intel 80×87.
Похожие записи
- No related posts found