Директивы подключений и установки параметров
$A: Data Align Switch
$AC: Ada-Style Comments Switch
$AMD: AMD 3DNow! Assembler Instructions Switch
$B: Boolean Evaluation Switch
$CC: C/C++ Style Comments Switch
$D: Debug Information Switch
$I: I/O-Checking Switch
$I: Include File Directive
$L: Link Object File Directive
$L: Local Symbol Information Switch
$MAP: Map File Generation Switch
$MMX: Intel MMX Assembler Instructions Switch
$OA: Objects and Structures Align Switch
$OPT: Full Optimization Switch
$OPTFRM: Stack Frame Optimization Switch
$OPTREG: Register Optimization Switch
$P: Open String Parameters Switch
$Q: Overflow Checking Switch
$R: Range-Checking Switch
$S: Stack-Overflow Checking Switch
$T: Type-Checked Pointers Switch
$TPO: Typed Inc/Dec Operations Switch
$V: Var-String Checking Switch
$W: Warnings Generation Switch
$X: Extended Syntax Switch
$XW: Extended Warnings
$A: Data Align Switch
Включает или выключает выравнивание слова переменных и типизированных
констант.
Синтаксис:
{$A+} или
{$A-}
По умолчанию:
{A+}
Замечания:
Действия данного выключателя не распространяется на объекты и
структуры. Используйте директиву компилятора
$OA, чтобы включить или
выключить выравнивания объектов и структур.
$AC: Ada-Style Comments Switch
Включает или выключает распознавание комментариев стиля АДА.
Синтаксис:
{$AC+} или
{$AC-}
По умолчанию:
{AC-}
Замечания:
Имейте в виду, что комментарии стиля АДА не поддерживаются по
умолчанию.
$AMD: AMD 3DNow! Assembler Instructions Switch
Включает или выключает поддержку команд AMD 3DNow! во встроенном
ассемблере.
Синтаксис:
{$AMD+} или
{$AMD-}
По умолчанию:
{AMD+}
$B: Boolean Evaluation Switch
Включает или выключает две различных модели генерации кода для
логических операторов AND и OR (тип Boolean).
Синтаксис:
{$B+} или
{$B-}
По умолчанию:
{$B-}
Замечания:
Если указана директива
{$B+}, компилятор генерирует код для полной
проверки логического выражения. То есть каждый операнд логического
выражения, построенного из операторов AND и OR будет обязательно
проверен, даже когда результат полного выражения уже известен.
Если указана директива
{$B-}, компилятор генерирует код для
сокращенной проверки логического выражения. То есть проверка
останавливается, как только результат полного выражения становится
очевидным.
$CC: C/C++ Style Comments Switch
Включает или выключает распознавание комментариев стиля C/C++.
Синтаксис:
{$CC+} или
{$CC-}
По умолчанию:
{$CC+}
$D: Debug Information Switch
Включает или выключает генерацию отладочной информации.
Синтаксис:
{$D+} или
{$D-}
По умолчанию:
{$D+}
Замечания:
Отладочная информация содержит таблицу пронумерованных строк для
каждой процедуры. Таблица переводит адрес объектного кода в номер
строки исходного текста.
Если указана директива
{$D+}, вы можете использовать встроенный
отладчик для пошаговой проверки кода и установки контрольных точек в
модуле.
Отладочная информация увеличивает размер файлов модуля и для
компиляции требуется больший объем памяти.
Выключатель Отладочной Информации обычно используется совместно с
Выключателем Локальных Символов (Local Symbols switch).
См. также:
$L: Local Symbol Information Switch.
$I: I/O-Checking Switch
Включает или выключает автоматическую генерацию кода, который
проверяет результат обращения к процедуре ввода/вывода.
Ситаксис:
{$I+} или
{$I-}
По умолчанию:
{$I+}
Замечания:
Если процедура ввода/вывода возвращает не нулевой результат при
включенной директиве
$I, то программа завершается, а на экране
появляется сообщение об ошибке во время выполнения.
Если директива
$I отключена, вы должны использовать функцию
IOResult
для проверки на ошибки ввода/вывода.
$I: Include File Directive
Директива компилятора, которая включает в компиляцию файл, имя
которого указано после директивы.
Синтаксис:
{$I ИмяФайла}
Замечания:
Подключаемый файл вставляется в компиляцию сразу после директивы
{$I ИмяФайла}.
$L: Link Object File Directive
Директива компилятора, которая связывает указанный файл с программой
или компилируемым модулем.
Синтаксис:
{$L ИмяФайла}
Замечания:
Директива
{$L ИмяФайла} используется для компоновки с кодом,
написанным на Ассемблере для подпрограмм, объявленных как внешние.
Названный файл должен быть Intel-совместимым объектным файлом (.OBJ file).
См. также:
Внешние процедуры
$L: Local Symbol Information Switch
Включает или выключает генерацию локальной символьной информации.
Синтаксис:
{$L+} или
{$L-}
По умолчанию:
{$L+}
Замечания:
Локальная символьная информация состоит из символов в разделе модуля
implementation (имена и типы всех локальных переменных и констант в
модуле), а также символов внутри процедур и функций модуля.
$MAP: Map File Generation Switch
Включает или выключает генерацию предупреждений.
Синтаксис:
{$MAP+} или
{$MAP-}
По умолчанию:
{MAP-}
Замечания:
Если указана директива
{$MAP+}, то TMT Pascal будет генерировать файл
предуперждений.
$MMX: Intel MMX Assembler Instructions Switch
Включает или выключает поддержку команд Intel MMX во встроенном
Ассемблере.
Синтаксис:
{$MMX+} или
{$MMX-}
По умолчанию:
{MMX+}
$OA: Objects and Structures Align Switch
Включает или выключает выравнивание слов объектов и структур.
Синтаксис:
{$OA+} или
{$OA-}
По умолчанию:
{$OA-}
Замечания:
Эта директива не влияет на выравнивание переменных и типизированных
констант. Используйте директиву
$A, чтобы включить или отключить
выравнивание переменных и типизированных констант.
$OPT: Full Optimization Switch
Включает или выключает полную оптимизацию (
{OPTREG+} & {OPTFRM+}).
Синтаксис:
{$OPT+} или
{$OPT-}
По умолчанию:
{OPT+}
$OPTFRM: Stack Frame Optimization Switch
Включает или выключает оптимизацию границ стека.
Синтаксис:
{$OPTFRM+} или
{$OPTFRM-}
По умолчанию:
{$OPTFRM+}
$OPTREG: Register Optimization Switch
Включает или выключает оптимизацию регистров.
Синтаксис:
{$OPTREG+} или
{$OPTREG-}
По умолчанию:
{$OPTREG+}
$P: Open String Parameters Switch
Управляет значением объявленных переменных параметров, использующих
ключевое слово
string.
Синтаксис:
{$P+} или
{$P-}
По умолчанию:
{$P+}
Замечания:
Если указана директива
{$P-}, объявленные переменные параметры,
использующие ключевое слово
string, являются нормальными переменными
параметрами.
Если указана директива
{$P+}, объявленные переменные параметры,
использующие ключевое слово
string, являются открытыми строковыми
параметрами.
$Q: Overflow Checking Switch
Управляет генерацией кода проверки переполнения.
Синтаксис:
{$Q+} или
{$Q-}
По умолчанию:
{$Q-}
Замечания:
Директива
$Q обычно используется совместно с директивой
$R.
Включение проверки переполнения замедляют вашу программу и увеличивают
ее размер. Мы рекомендуем использовать
{$Q+} только во время отладки.
$R: Range-Checking Switch
Включает или выключает генерацию кода проверки диапазона.
Синтаксис:
{$R+} или
{$R-}
По умолчанию:
{$R-}
Замечания:
Директива
$R обычно используется совместно с директивой
$Q.
Если указана директива
{$R+}, то все массивы и выражения, определяющие
размерность строк, проверяются на соответствие указанным границам.
Также проверяются все переменные и числа, которые не должны выходить
за пределы указанного диапазона.
Если проверка диапазона не проходит, то программа завершается и
появляется сообщение об ошибке во время выполнения.
Включение проверки переполнения замедляeт вашу программу и
увеличивают ее размер. Мы рекомендуем использовать
{$R+} только во
время отладки.
Имейте ввиду, что эта директива влияет даже на операторы
"+",
"*" и
Shl.
$S: Stack-Overflow Checking Switch
Включает или выключает генерацию кода проверки переполнения стека.
Синтаксис:
{$S+} или
{$S-}
По умолчанию:
{$S-}
Замечания:
Если указана директива
{$S+}, то компилятор генерирует код в начале
каждой процедуры или функции, который проверяет есть достаточное
свободное место в стеке для локальных переменных и других временных
записей.
Важно! Эта директива не поддерживается текущей версией компилятора и
будет игнорироваться.
$T: Type-Checked Pointers Switch
Управляет типами значений указателя, генерируемых с помощью оператора
@.
Синтаксис:
{$T+} или
{$T-}
По умолчанию:
{$T-}
Замечания:
Если указана директива
{$T-}, тип результата оператора
@ - это
всегда нетипизированный указатель. Иначе тип результата - это
^Т,
где
Т совместим только с другими указателями для типа переменной.
$TPO: Typed Inc/Dec Operations Switch
Включение или выключение печати операций
Inc/Dec над указателями.
Синтаксис:
{$TPO+} или
{$TPO-}
По умолчанию:
{$TРО+}
Пример:
var
a: ^DWORD;
begin
a:=Pointer(0);
inc(a);
Writeln(Longint(a));
end.
Вышеуказанная программа напечатает символ
1, если печать операций
выключена:
{$TPO-}. Если печать операций включена -
{$TPO+}, то
программа напечатает символ
4.
$V: Var-String Checking Switch
Управляет проверкой типа на строках, проходящих как переменные
параметры.
Синтаксис:
{$V+} или
{$V-}
По умолчанию:
{$V+}
Замечания:
Если указана директива
{$V+}, то выполняется строгая проверка типа,
которая требует, чтобы формальные и фактические параметры были
одинакового строкового типа. Иначе любая переменная строкового типа
допускается как строковый параметр, даже если объявленная максимальная
длина строки не соответствует длине строки формального параметра.
$W: Warnings Generation Switch
Включает или выключает генерацию предупреждений.
Синтаксис:
{$W+} или
{$W-}
По умолчанию:
{$W+}
Замечания:
Если указана директива
{$W+}, то TMT Pascal будет показывать
предупреждения компиляции.
$X: Extended Syntax Switch
Включает или выключает расширенный синтаксис Turbo Pascal.
Синтаксис:
{$X+} или
{$X-}
По умолчанию:
{$X+}
Замечания:
Если указана директива
{$X+}, обращения к функции могут быть
использованы как операторные скобки; результат обращения к функции
может быть проигнорирован.
$XW: Extended Warnings
Включает или выключает генерацию расширенных предупреждений.
Синтаксис:
{$XW+} или
{$XW-}
По умолчанию:
{$XW-}
Замечания:
Если указана директива
{$XW+}, то TMT Pascal будет показывать
предупреждения компиляции.