Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

1.3.5.2. Основные директивы компилятора

{$A+}, {$Allign On} ‑ выравнивание полей записей на границу слова.

{$B+}, {$Boolean On} ‑ вычисление логических выражений полностью.

{$С+}, {$Assertions On} ‑ проверка условий в процедуре Assert (п. 1.7.9).

{$D+}, {$DebuggInfo On} ‑ генерация отладочной информации.

{$D ‘текст’},{$Description ‘текст’} ‑ заголовок программы DLL.

{$G+}, {$ImprotedData On} ‑ включение в пакет данных.

{$I+}, {$IOChecks On} ‑ включение контроля результатов работы операции файлового ввода‑вывода. При возникновении ошибки генерируется исключение EinOutError (п.1.6.2). Если {I‑}, исключение не генерируется, а для анализа результата используется функция IOResult (п.1.8.2.1).

{$L файл}, {$Link файл} ‑ использовать компоновщику указанный файл для связывания с программой или модулем.

{$H+}, {$LongStrings On} ‑ использовать строку типа String как длинную.

{$P+}, {$OpenStrings On} ‑ использовать открытые строки.

{$Q+},{$OverFlowChecks On} ‑ проверка переполнения при целочисленных операциях (исключение EIntOverFlow (п.1.7.9)).

{$R+},{$RangeChecks On} ‑ проверка диапазона целочисленных значений, индексов массивов и коротких строк (исключение ERangeError (п.1.7.9)).

{$R файл},{$Resource файл} ‑ указывает имя ресурсного файла.

{$RunOnly On} ‑ компиляция пакета только на этапе выполнения программы.

{$T+},{$Typedaddress On} ‑ контроль за соответствием типов указателей.

{$M+},{$TypeInfo On} ‑ генерация кода контроля типов при выполнении.

{$M n,k}минимальное (n) и максимальное (k) значения размера стека в байтах для размещения локальных переменных. Если размер мал, то генерируется исключение EstackOverFlow (п.1.6.2) ($M 16384, 1048576).

{$V+},{$VarStringChecks On} ‑ контроль длины строковых параметров.

{$J+},{$WriteAbleConst On} ‑ типизированные константы рассматриваются как переменные с исходными значениями.

1.3.5.3. Директивы условной компиляции

{$Define идентификатор} ‑ определение условного идентификатора.

{$UnDef идентификатор} ‑ отмена ранее определенного, условного идентификатора.

{$IfDef идентификатор} ({$IfNDef идентификатор}) ‑ возвращает истину (ложь), если определен указанный условный идентификатор.

{$IfOpt ключевая директива} ‑ возвращает истину, если включена указанная ключевая директива компилятора (например, {IfOpt Q+}).

{$Else} ‑ начало области действия ложности директивы Ifxxxx (IfDef,IfOpt, OfNDef).

{$EndIf} ‑ конец всей области действия условной директивы Ifxxxx.

Условная компиляция производится по схеме:

[{$Define ...}] [{$UnDef ...}] ... {$Ifxxxx} ... [{$Else} ... ] {$EndIf}

Обычно эти директивы используются для включения отладочных операторов или при разработке программ, которые настраиваются при ком­пиляции на внешние параметры, определенные в качестве условных идентификаторов. Оставляя в программе определения нуж­ных условных идентификаторов, пользователь настраивает исходный текст программы на требуемый вариант ее работы без включения в код прог­раммы ненужных фрагментов, что повышает эффективность ее работы.

Пример задания параметра районного коэффициента к зарплате:

{$Define RegionalKoef} //параметр учета районного коэффициента

{$IfDef RegionalKoef} Zarplata:=Zarplata+Zarplata*RegKoef; {$EndIf}