Эквивалент меню: Options/Compiler/Stack-Checking




В зависимости от режима приводится в действие или отменяется генерирование кода проверки переполнения стека. При указании {$S+} компилятор генерирует в начале каждой процедуры или функции код, который проверяет, достаточное ли место в стеке выделено для локальных переменных. Если в стеке места недостаточно, то обращение к процедуре или функции, скомпилированное с указанием {$S+}, приводит к завершению работы программы, которая при этом выводит сообщение об ошибке времени выполнения. При указании {$S-} подобное обращение наиболее вероятно приведет к фатальной ошибке системы («зависанию»).

Режим проверки параметров строкового типа

Синтаксис: {$V+} или {$V-}

Режим по умолчанию: {$V+}

Тип: Локальный

Эквивалент меню: Options/Compiler/Var-String Checking

Ключ $V управляет проверкой типа при передаче строк в качестве параметров-переменных. В состоянии {$V+} выполняется строгая проверка типа, при которой требуется, чтобы формальный и фактический параметр имели идентичные строковые типы. В состоянии {$ V-} в качестве фактического параметра допускается использовать любую переменную строкового типа, даже если ее описанная длина не совпадает с длиной соответствующего формального параметра.

Директивы с параметрами

Включение файла для компиляции

Синтаксис: {$I ИмяФайла}

Тип: Локальный

Эквивалент меню: Options/Compiler/Include Directories

Данная директива сообщает компилятору о необходимости включить в компиляцию названный файл. Фактически файл вставляется в скомпилированный текст непосредственно за директивой {$I ИмяФайла}. Расширением по умолчанию для параметра «ИмяФайла» является «.PAS». Если параметр «ИмяФайла» не содержит в себе маршрута, то в дополнение к поиску файлов в текущем каталоге Турбо Паскаль осуществляет поиск его в каталогах, указанных в связанном с директивой меню (или в оглавлениях, указанных в опции /I автономного компилятора ТРС.ЕХЕ).

Турбо Паскаль допускает открытие в любой данный момент времени не более восьми входных файлов. Это значит, что для включаемых файлов допускается вложенность на глубину до восьми уровней. {545}

Имеются ограничения на использование включаемых файлов: директива включения файла не может быть указана в середине раздела операторов, а сам включаемый файл должен содержать завершенный блок предложений на Турбо Паскале.

Компоновка файла объектных кодов

Синтаксис: {$L ИмяФайла }

Тип: Локальный

Эквивалент меню: Options/Directories/Object Directories

Данная директива предписывает компилятору скомпоновать указанный файл с компилируемой программой или модулем. Директива $L используется для компоновки кода, написанного на языке ассемблера для подпрограмм, описанных как внешние (external). Указанный файл должен быть перемещаемым объектным файлом в формате INTEL (OBJ-формате). Расширением по умолчанию для параметра «ИмяФайла» является «.OBJ». Если в параметре «ИмяФайла» каталог не указан, то в дополнение к поиску файла в текущем каталоге Турбо Паскаль просматривает каталоги, указанные в меню.

Размеры выделяемой памяти

Синтаксис: {$М Стек, МинимумКучи, МаксимумКучи }

Значения по умолчанию: {$М 16384, 0, 655360}

Тип: Глобальный.

Эквивалент меню: Options/Compiler/Memory Sizes

Данная директива указывает параметры распределения памяти программы. Параметр «Стек» должен быть целым числом в диапазоне от 1024 до 65520, указывающим размер сегмента стека. «МинимумКучи» должно быть числом в диапазоне от 0 до 655360, а «МаксимумКучи» должно быть числом в диапазоне от «МинимумКучи» до 655360. Последние два параметра указывают соответственно минимальные и максимальные размеры динамически распределяемой области памяти.

Директива $М не оказывает влияния при использовании ее в модуле (UNIT).

Указание имени оверлейного модуля

Синтаксис: {$О ИмяМодуля}

Тип: Локальный

Указание в данной директиве имени модуля превращает этот модуль в оверлейный. При использовании данной директивы в модуле он игнорируется. При компиляции программы директива {$О ИмяМодуля} задает, какой из используемых программой модулей нужно поместить в файл с оверлеями (OVR-файл).

Эта директива должна указываться после директивы USES программы. При попытке использовать в качестве оверлейного модуль, который не был скомпилирован в состоянии {$О+}, Турбо Паскаль сообщит об ошибке. Любой модуль, имя которого указывается в параметре «ИмяМодуля», должен быть скомпилирован с установленными режимами {$O+,F+}. {546}

ПРИЛОЖЕНИЕ 3



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: