Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Руководство по Borland Pascal.doc
Скачиваний:
45
Добавлен:
02.05.2014
Размер:
2.05 Mб
Скачать

Секция инициализации

Обычно вся секция реализации модуля заключена между зарезер-

вированными словами implementation и end. Однако, если перед end

поместить зарезервированное слово begin, а между ними - операто-

ры, то получившийся составной оператор, очень похожий на основное

тело программы, становится секцией инициализации модуля

(initialization).

Секция инициализации представляет собой место, где инициали-

зируются структуры данных (переменных), которые использует прог-

раммный модуль или которые он делает доступными программе, ис-

пользующей данный модуль. Вы можете использовать эту секцию для

открытия файлов, которые программа использует позднее.

При выполнении программы, использующей некоторый модуль,

секция инициализации этого модуля вызывается перед запуском ос-

новного тела программы. Если программа использует более одного

модуля, то секции инициализации всех модулей вызываются (в поряд-

ке, указанном в операторе uses в программе) перед тем, как выпол-

нить основное тело программы.

Как используются модули?

Модули, которые использует ваша программа, уже оттранслиро-

ваны и хранятся, как машинный код, а не как исходный код на Пас-

кале, поскольку они не являются включаемыми файлами. Даже интер-

фейсная секция хранится в специальном двоичном формате таблицы

идентификаторов, используемом в Borland Pascal. Более того, опре-

деленные стандартные модули хранятся в специальном файле

(TURBO.TPL, TPW.TPL или TPP.TPL) и автоматически загружаются в

память вместе с Borland Pascal.

В результате использование одного или нескольких модулей

очень незначительно увеличивает время компиляции вашей программы

(обычно менее, чем на секунду).

Фактически, если модуль скомпилирован, его использование

сохраняет вам время при перекомпиляции. Поскольку компилятор не

перекомпилирует модуль, пока он не изменяется, использование мо-

дулей в программе ускорит процесс ее построения.

Как указывалось ранее, для использования специального модуля

или набора модулей необходимо в начале программы поместить опера-

тор uses, после которого указать список имен тех модулей, которые

будут использоваться. Имена их должны разделяться запятыми:

program MyProg;

uses thisUnit, thatUnit, theOtherUnit;

Когда компилятор встречает такой оператор uses, он прибавля-

ет информацию из секции интерфейса каждого модуля к таблице иден-

тификаторов и присоединяет машинный код, представленный в секции

реализации, к самой программе.

Модули присоединяются к таблице идентификаторов в указанном

порядке. Порядок модулей в операторе uses значения не имеет. Если

модуль thisUnit использует thatUnit или наоборот, вы можете опи-

сать их в любом порядке, а компилятор определит, какой модуль

нужно скомпоновать с программой MyProg первым. Фактически, если

модуль thisUnit использует thatUnit, но MyProg не вызывает непос-

редственно ни одну из подпрограмм в модуле thatUnit, вы можете

"скрыть" подпрограммы модуля thatUnit, опустив его в операторе

uses:

unit thisUnit;

uses thatUnit;

.

.

.

program MyProg;

uses thisUnit, theOtherUnit;

.

.

.

В этом примере модуль thisUnit может вызывать любую подпрог-

рамму модуля thatUnit, а программа MyProg может вызывать любую из

подпрограмм модуля thisUnit или theOtherUnit. Однако, программа

MyProg не может вызывать подпрограммы модуля thatUnit, поскольку

thatUnit не указывается в операторе uses программы MyProg.

Если в программе не указан оператор uses, Borland Pascal в лю-

бом случае присоединит стандартный модуль System. Этот модуль

обеспечит выполнение некоторых стандартных подпрограмм Borland

Pascal, а также нескольких подпрограмм, специфических для Borland

Pascal.

Соседние файлы в папке Delphi