16.6.4 Область действия модуля

На верх  Назад  Вперёд

Все идентификаторы в интерфейсной части модуля действительны с точки объявления и до конца модуля. Кроме того, идентификаторы определены в программах или модулях, которые используют модули в пункте uses.

Идентификаторы косвенно зависимых модулей не доступны. Идентификаторы, объявленные в части реализации модуля действительны с точки объявления и до конца модуля.

Модуль system автоматически используется во всех модулях и программах. Поэтому его идентификаторы всегда известны, в каждой Pascal программе, библиотеке или модуле.

Правила области действия модуля подразумевают, что идентификатор модуля может быть переопределен. Для того, чтобы иметь доступ к идентификатору другого модуля, который был переопределён в текущем модуле, перед идентификатором нужно указать имя модул (через точку), как показано в следующем примере:

unit unitA;

 

interface

 

Type

MyType=Real;

 

implementation

end.

 

Program prog;

Uses UnitA;

{ Переопределим MyType}

Type MyType=Integer;

Var

A:Mytype; {Будет целым}

B:UnitA.MyType {Будет вещественным}

begin

end.

Это полезно, когда переобъявляются идентификаторы модуля system (а надо использовать первоначальные).