Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Локальные и глобальные идентификаторы



Читайте также:
  1. Глобальные (или мировые) идеологии
  2. Глобальные (или мировые) идеологии 351
  3. ГЛОБАЛЬНЫЕ ИГРОКИ НОВОГО ХАОСОПОРЯДКА
  4. Глобальные компьютерные сети. Принципы организации и функционирования сети Internet. Основные сервисы Internet.
  5. Глобальные проблемы современности
  6. Глобальные проблемы современности. Социальные и культурные риски глобализации.
  7. Глобальные проблемы человечества. Пути решения глобальных проблем современности

Использование подпрограмм в языке Turbo Pascal связано с некоторыми особенностями работы с идентификаторами программы (именами констант, типов и переменных).

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

Имена, описанные в глобальном модуле (т.е. в основной программе), являются глобальными для всех подпрограмм. Глобальные данные, описанные в основной программе, хранятся в области памяти, называемой сегментом данных (или статическим сегментом) программы. Они создаются на этапе компиляции и доступны в любой момент работы программы.

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

Основные правила работы с глобальными и локальными именами можно сформулировать так:

· Локальные имена доступны (считаются известными, "видимыми") внутри того модуля, в котором они описаны, и вложенных в него модулей. Этот модуль, и все другие, вложенные в него, называют областью видимости для этих локальных имен. Например, для программы, представленной в виде структурной схемы на рис.2, глобальные имена x и y известны в основной программе Global и во всех вложенных в нее подпрограммах Loc1, Loc2 и Loc11; локальные имена, описанные внутри модуля Loc1, будут известны в самом модуле Loc1, а также в модуле Loc11, имена x2 и y2 – только в модуле Loc2.

Модуль Global (x и y – объявленные в модуле имена переменных)
Модуль Loc1 (x1 и y1 – объявленные в модуле имена переменных)
Модуль Loc11 (x11 и y11 – объявленные в модуле имена переменных)
 

 

 

Модуль Loc2 (x2 и y2 – объявленные в модуле имена переменных)
 

 

Рис. 2

· Имя, описанное в локальном модуле, "закрывает" совпадающие с ним имена из модулей более высокого уровня. Это означает, что если в двух модулях, один из которых содержится внутри другого, есть данные с одинаковыми именами, то после входа во вложенный модуль работа будет происходить с локальными для данного модуля данными. Данные с теми же именами, описанные в глобальном блоке, становятся временно недоступными, и это продолжается до момента выхода из вложенного модуля.

Рекомендуется все данные, которые имеют в подпрограммах только внутреннее вспомогательное назначение, делать локальными. Это предохраняет от изменений глобальные объекты с такими же именами.

 


Дата добавления: 2015-07-10; просмотров: 117 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.008 сек.)