Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
80
Добавлен:
09.05.2015
Размер:
725.5 Кб
Скачать

2.6 Область видимости переменных, констант, процедур и функций

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

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

объявления

begin

операторы

end

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

Идентификатор (например, имя переменной) может быть использован только в своей области видимости. Область видимости идентификатора, объявленного в функции или процедуре, ограничена блоком, в котором он объявлен. Область видимости идентификатора, объявленного в интерфейсном разделе модуля, включает любой модуль или программу, использующую данный модуль. Идентификаторы с более узкой областью видимости, например объявленные в функции или процедуре, называются локальными, а с более широкой областью видимости — глобальными. На рис. 2.9приведены правила, определяющие область видимости идентификаторов.

Таблица 2.9.

Место объявления

Область видимости

Объявление функции или процедуры

От точки объявления до конца текущего блока, включая все вложенные блоки

Интерфейсный раздел модуля

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

Раздел реализации модуля

От точки объявления до конца раздела реализации; идентификатор доступен внутри любой функции или процедуры в этой области

Блоки позволяют использовать разные объекты с одним и тем же именем в разных частях программы. Если один блок вложен в другой, то один из них называется внутренним, а другой — внешним. Если идентификатор (переменная, константа, функция, подпрограмма), объявленный во внешнем блоке объявить также во внутреннем блоке, то внутреннее объявление скрывает внешнее для всех не специфицированных вхождений идентификатора во внутреннем блоке. Допустим, например, что переменная myValueобъявлена в интерфейсном разделе модуля и повторно объявлена в функцииCompute() данного модуля. Тогда всеми не специфицированными вхождениямиmyValueв блоке функцииCompute() будет управлять локальное объявление.

Область видимости переменной (как одного из видов объектов) может быть локальной или глобальной. Переменная с локальной областью видимости называется локальной переменной, а с глобальной областью видимости — глобальной переменной.

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

Соседние файлы в папке разработка и стандартизация