Программирование в среде Турбо Паскаль (Поляков, Круглов) - страница 82


UNIT ИмяМодуля;

INTERFACE ← начало раздела объявлений

USES { используемые при объявлениях модули: }

> Имя_Модуля1, Имя_Модуля2, ... ;

CONST Блок объявления библиотечных констант

TYPE Блок объявления библиотечных типов

VAR Блок объявления библиотечных переменных

> Заголовки библиотечных процедур и (или) функций

IMPLEMENTATION ← начало раздела реализации

USES { используемые при реализации модули:}

> Имя_Модуля101, Имя_Модуля202, ... ;

CONST Блок объявления внутренних констант

TYPE Блок объявления внутренних типов

VAR Блок объявления внутренних переменных

LABEL Блок описания меток блока инициализации

BEGIN

> Блок инициализации модуля

END.


Рис. 6.17


Модуль разделяется на четыре части:

— заголовок модуля (UNIT имя);

— раздел объявлений или интерфейс (INTERFACE);

— раздел реализации (IMPLEMENTATION);

— раздел инициализации (между BEGIN и END).

Все блоки, составляющие эти разделы (см. рис. 6.17), являются необязательными, и могут отсутствовать (как могут и появляться неоднократно). Обязательные слова, входящие в модуль, продемонстрированы на рис. 6.18, где показан пустой модуль.

- 126 -


UNIT Пустой;

INTERFACE

IMPLEMENTATION

END.


Рис. 6.18

Обращаем внимание на отсутствие точек с запятой после ключевых слов. Если не вводится раздел инициализации, то начинающее его слово BEGIN не ставится.

Заголовок модуля вводит имя, по которому модуль будет подключаться к другим программам. Имя должно быть уникальным (не иметь повторов внутри модуля) и соответствовать имени файла (с расширением .PAS) , хранящего исходный текст модуля (а после компиляции на диск имени файла с расширением .TPU).

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

Раздел объявлений, начинающийся словом INTERFACE, содержит описания типов, констант и переменных, которые будут привноситься в программу при подключении модуля. В нем же описываются заголовки процедур и функций, составляющих собственно библиотеку подпрограмм. В разделе обявлений указываются только заголовки, потому что информация о содержимом подпрограмм модуля не нужна на этапе компиляции, а используется только при компоновке программы. Исключение составляют процедуры с директивой inline (см. разд. 14.7.2). Они могут целиком задаваться в разделе объявлений. Недопустимы заголовки с директивами interrupt (см. разд. 16.6) и forward.