Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 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 ключевая директива}‑ возвращает истину, если включена указанная ключевая директива компилятора (например, {IfOptQ+}).

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

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

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

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

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

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

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

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