Zmienne globalne

Adam Boduch

Zmienne globalne to zmienne deklarowane w programie, dostępne dla całego programu, a także funkcji i procedur umieszczonych w aplikacji. Pamięć dla zmiennych globalnych przydzielana jest w momencie uruchamiania aplikacji.

To, że zmienne globalne są dostępne w każdym miejscu aplikacji jest prawdą, lecz trzeba trzymać się pewnych zasad. Spójrz na poniższy kod:

program Test;

{$APPTYPE CONSOLE}

procedure Foo;
begin
  Bar := 'Bar';
end;

var
  Bar : String;


begin
  Foo;
end.

Próba skompilowania takiego programu zakończy się błędem pomimo, iż zmienne Bar jest zmienną globalną. Dlaczego? Zobaczmy, co robi ten program. Procedura Foo próbuje przypisać wartość do zmiennej globalnej Bar. Kompilator jednak "czyta" kod od góry do dołu. Natrafia na linię 7, gdzie próbuje się przypisać wartość do zmiennej, która wcześniej nie została zadeklarowana. Dla funkcji Foo, zmienna Bar nie jest widoczna - jej deklarację należy przenieść wyżej.

Podobnie sprawa wygląda w przypadku modułów.

Zobacz też:

1 komentarz

Dla funkcji Foo - tu nie ma funkcji tylko procedura Foo