При создании программ, использующих процедуры, следует учитывать, что все объекты (метки, константы, типы, переменные, процедуры и функции), которые описываются после заголовка процедуры, называются локальными объектами, доступны только в пределах этой процедуры и недоступны вызывающей программе. Память под них выделяется при обращении к процедуре в специальной части памяти, которая именуется программным стеком. По окончании работы процедуры эта память освобождается и может быть занята под локальные переменные другой процедуры, поэтому все локальные объекты создаются при входе в процедуру и уничтожаются при выходе из нее. Если одно и то же имя определено в нескольких процедурах, вызываемых одной программой, то в каждой процедуре этому имени соответствует свой локальный объект.
Все объекты, описанные в вызывающей программе, называются глобальными. Память под глобальные переменные выделяется при компиляции программы. Эта часть памяти именуется сегментом данных. Глобальные пе¬ременные находятся в сегменте данных от начала до конца выполнения программы, поэтому ими можно пользоваться и в программе, и во всех процедурах, к которым обращается программа.
Следует знать:
• обмен данными между программой и вызываемой ею процедурой может производиться и через глобальные переменные;
• если же одно и то же имя определено и в программе, и в вызываемой ею процедуре, то в программе ему соответствует глобальный объект, но внутри процедуры глобальный объект недоступен, он как бы экранируется (маскируется) локальным объектом с таким же именем, над которым и выполняются необходимые действия.
 предыдущая         меню        вверх         следующая