Области действия имен

В программе на языке FPC различают глобальные и локальные имена. Глобальные имена определены во внешней программе. Память под них выделяется статически при компиляции. Они доступны во всех внутренних точках, в том числе в подпрограммах.

Локальные имена определены в подпрограммах. Память под них выделяется динамически (в стеке) при исполнении подпрограммы. Они доступны во внутренних точках подпрограммы, а во внешней программе недоступны.

Если локальное и глобальное имя совпадают, то в подпрограмме локальное имя блокирует глобальное. Совпадения глобальных и локальных имен лучше избегать. Чтобы получить доступ к глобальному имени в подпрограмме, его надо указывать составным. Формат доступа к глобальному имени: <имя программы>.<глобальное имя>. Пример:

program Names_View;

{$mode objfpc}{$H+}

uses SysUtils;                         // Ссылка на модули

var I:integer;                                // Глобальная переменная I

procedure Proc;

var I:real;                         // Локальная переменная I

begin

I:=7;                                 // Задание локальной переменной

I:=2.1+Names_View.I;          // Обращение к глобальной переменной

writeln(I);                         // Результат в процедуре – число 5.1

end;

begin

I:=3;                                      // Задание глобальной переменной

Proc;                               // Обращение к процедуре

readln;                             // Пауза, чтобы увидеть результат

end.

Нетипизированные параметры

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

TwitterSEO CommunityВаау!News2.ruChippKoricaSMI2Google BookmarksDiggI.uaЗакладки YandexLinkstoreMyscoopCommunizmRu-marksWebmarksRuspaceLinkomaticKli.kzWeb-zakladkaZakladok.netRedditdeliciousMa.gnoliaTechnoratiSlashdotYahoo My WebБобрДобр.ruMemori.rurucity.comМоёМесто.ruMister Wong

Copyright © 2009-2010 Программирование на паскале.