Лекция: Локальные и глобальные объекты. Область действия объектов.
Имена, описанные в заголовке или разделе описаний процедуры или функции называют локальными для этого блока. Имена, описанные в блоке, соответствующем всей программе, называют глобальными. Следует помнить, что формальные параметры прцедур и функций всегда являются локальными переменными для соответствующих блоков.
Основные правила работы с глобальными и локальными именами можно сформулировать так:
- Локальные имена доступны (считаются известными, «видимыми») только внутри того блока, где они описаны. Сам этот блок, и все другие, вложенные в него, называют областью видимости для этих локальных имен.
- Имена, описанные в одном блоке, могут совпадать с именами из других, как содержащих данный блок, так и вложенных в него. Это объясняется тем, что переменные, описанные в разных блоках (даже если они имеют одинаковые имена), хранятся в разных областях оперативной памяти
Областью действия идентификатора называется часть программы, где он может быть использован. Область действия определяется местом объявления. Если идентификатор допускается использовать только в рамках одной процедуры или функции, то такие идентификаторы называются локальными. Локальные переменные доступны только тем инструкциям, в которых они описаны и недоступны ни основной программе, ни другим инструкциям. Допускается использование для обозначения локальных переменных тех идентификаторов, которые использованы в качестве локальных в других подпрограммах.
Если в разных подпрограммах описаны переменные с одинаковыми именами, и даже одинакового типа, то компьютер воспринимает их как разные переменные
Если переменные описаны в основной программе, то они доступны всем инструкциям программы, в том числе и инструкциям процедур и функций программиста. Такие переменные называются глобальными.
Процедуры и функции могут изменять значения глобальных переменных, но такие операции считаются нежелательными для хорошего стиля программирования.
Для определения области действия идентификаторов надо придерживаться правил:
— каждый идентификатор должен быть описан перед тем, как будет использован;
— областью действия идентификатора является блок, в котором он описан;
— все идентификаторы в блоке должны быть уникальными, т.е. не повторяться;
— один и тот же идентификатор может быть по-разному определен в каждом отдельном блоке;
Если идентификатор подпрограммы совпадает с именем стандартной процедуры или функции, то последние недоступны в области действия подпрограммы, объявленной пользователем, т.е. стандартная функция игнорируется, а выполняется программа пользователя.
26 Строковый тип данных. Процедуры и функции работы со строками