Правила видимости идентификаторов

Begin

{раздел операторов}

end;

Функция активизируется при вычислении выражения с функцией. Вызов функции в выражении имеет вид:

Ид_функции [(список_фактических_параметров)];

В модуле должен содержаться, по крайней мере, один оператор присваивания, в котором идентификатору функции присваивается значение. Результатом функции (тем значением, которое возвращается в точку вызова) является последнее присвоенное идентификатору функции значение.

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

Синтаксис оператора возврата значения из функции:

Ид_функции:= выражение

Выражение должно быть совместимо по присваиванию с типом результата функции (см. раздел Совместимость в операциях присваивания стр. 18).

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

Область действия идентификатора распространяется от их места его описания в тексте до конца текущего блока, включая все блоки, входящие в текущий блок. Так переменная i, описанная в основной программе (рис. 23), будет видна и в самой программе, и в процедурах Blok2 и Blok3.

Рисунок 23 – Области видимости описаний

Описание идентификатора должно предшествовать любому вхождению идентификатора в текст программы.

Рассмотрим следующую ситуацию. Допустим, что в программе Blok1 вложен блок процедуры Blok2. Если в обоих блоках имеются описания переменных с одинаковым идентификатором, например, k, то в блоке Blok1 имеется доступ только к идентификатору k, который в нем описан, и аналогично внутри блока Blok2 имеется доступ только к идентификатору k, описание которого он содержит (рис. 24).

Рисунок 24 – Переопределение идентификатора во
внутреннем блоке


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: