Студопедия

Главная страница Случайная страница

Разделы сайта

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






Заметим, что понятия глобальные и локальные следует понимать относительно — по отношению к конкретной процедуре или функции.






Продемонстрируем это следующим примером.

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

А1, В1.С1 будут глобальными для всех процедур и функций, описанных внутри процедуры Р1 (в данном примере для процедуры Р2), и одновременно локальными для самой процедуры Р1.

Данные А2, В2, С2, объявленные в самой внутренней процедуре Р2, будут только локальными.

Сформулируем правила определения области действия для идентифика­торов процедур и функций:

  • действуют все идентификаторы, определенные внутри процедуры/функции;
  • действуют все идентификаторы окружающего контекста, если их имена отличаются от имен, объявленных внутри процедуры/функции;
  • локальные идентификаторы процедуры/функции во внешнем окружении действовать не будут никогда;
  • в случае совпадения имен глобального и локального идентификаторов действовать будет только внутренний локальный идентификатор.

Если первых три правила поясняются рассмотренным примером, то для пояснения четвертого приведем еще один пример.

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

Локальные данные создаются при вызове процедуры/функции и сущест­вуют только во время ее выполнения. Выделение памяти для локальных данных происходит автоматически в начале выполнения процеду­ры/функции, а освобождение этой памяти — как только выполнение процедуры/функции заканчивается.

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

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

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.