К содержанию

Область видимости идентификаторов

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

С другой стороны, в подпрограмме можно использовать идентификаторы, описанные только в вызывающей программной единице, но не в самой подпрограмме. Смысл и значение этих Идентификаторов будут одинаковы и там, и там. Такие идентификаторы называются глобальными, или нелокальными. Область действия описания конкретного идентификатора называется его областью видимости. Другими словами, область видимости переменной – это множество операторов, в которых данную переменную можно использовать.

Использования глобальных переменных в подпрограммах следует избегать. Тому есть несколько причин. Одна заключается в том, что подпрограмма, использующая глобальные переменные, становится менее универсальной, чем замкнутая, «самодостаточная» подпрограмма. При ее переносе в другую программу придется тщательно проследить за обменом данными между программными единицами с помощью глобальных переменных. Вторая причина связана с тем, что при использовании глобальных переменных возрастает риск ошибок, подчас трудно обнаружимых, вызванных «несанкционированным» или неучтенным изменением значения глобальной переменной в теле подпрограммы. Такие процедуры (или функции) могут иметь неожиданные побочные эффекты.

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

Добавить комментарий

Частые вопросы

Как часто обновляются данные по теме «Область видимости идентификаторов»?

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

Нужна ли регистрация, чтобы пользоваться материалами Языки программирования Pascal и Delphi?

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

Где смотреть источники и контакты редакции Языки программирования Pascal и Delphi?

Автор указан в карточке страницы. Служебные разделы — «О проекте», «Контакты» и политика конфиденциальности — в подвале сайта.

Есть ли смысл читать FAQ, если уже есть рейтинг?

Да. FAQ отвечает на типовые вопросы выбора, рейтинг — на сравнение позиций. Это разные блоки одной страницы.