CATEGORII DOCUMENTE |
VARIABILE GLOBALE SI LOCALE
Probleme speciale apar atunci cind un modul (program, procedura sau functie) este apelat din interiorul altui program.Ce se intimpla cind in modulul apelat se foloseste o variabila cu un nume identic cu al unei variabile din modulul apelant ? Variabilele din programul apelat sint cunoscute in cel apelant si invers ?
Variabilele globale (publice) pot fi accesate si modificate in orice modul in curs de executie, de pe un nivel inferior, egal sau superior nivelului modulului curent. Variabilele locale (private) spre deosebire de cele prezentate anterior, nu pot fi accesate decit in modulul curent si in cele subordonate acestuia, deci in modulele de pe nivele mai mari sau egale cu al modulului curent. Pentru ca intr-un modul sa se declare un set de variabile private, acestea se includ in comanda PRIVATE cu sintaxele :
PRIVATE <lista variabile>
PRIVATE ALL [LIKE <masca > | EXCEPT <masca>]
Prin aceasta comanda se declara ca fiind private (dar nu se creaza) variabilele din <lista variabile> (in cazul folosirii primei forme a comenzii), toate variabilele care se potrivesc cu <masca> (cind se foloseste clauza LIKE) sau toate variabilele cu exceptia celor care se potrivesc cu <masca> (la folosirea clauzei EXCEPT). Variabilele globale (publice) se definesc prin comanda PUBLIC , cu sintaxele :
PUBLIC <lista variabile>
Spre deosebire de PRIVATE, care nu creaza variabilele la care se refera, comanda PUBLIC, odata cu declararea variabilelor respective le si creaza. Prima forma se foloseste pentru crearea si declararea publica a variabilelor din <lista variabile>.
Exemplul
SET TALK OFF
CLEAR
PRIVATE a
PUBLIC b
a=1
b=2
DO TEST && aici se cunosc variabilele a,b,d dar nu se cunoaste variabila c
?'a=',a
?'b=',b
?'d=',d
PROCEDURE test
PRIVATE c
PUBLIC d
c=3
d=4 && aici se cunosc toate variabilele a,b,c,d
?'a=',a
?'b=',b
?'c=',c
?'d=',d
Un tip special de variabile asemanatoare cu cel privat este tipul regional util pentru folosirea variabilelor cu acelasi nume in "regiuni" diferite ale programului. Acest tip se declara prin comanda REGIONAL , cu doua forme ale sintaxei :
# REGION <numar>
REGIONAL <lista variabile>
Pentru a folosi doua variabile cu acelasi nume in acelasi program, acestea trebuie definite in listele de variabile ale comenzilor REGIONAL, in doua regiuni separate ale programului. Regiunile se definesc prin prima forma a comenzii, identificarea fiecarei regiuni facindu-se printr-un numar de la 0 la 31, cel declarat in comanda #REGION <numar>. O regiune se intinde de la comanda REGION care desemneaza inceputul unei regiuni pina la prima comanda REGION care urmeaza acesteia, sau pina la sfirsitul fisierului.
Exemplul 2
#REGION 1
REGIONAL a && prima regiune
a=1
?a
#REGION 2
REGIONAL a && a doua regiune
a=2
?a
In acest exemplu se folosesc doua variabile cu acelasi nume, acestea fiind definite ca regionale, in regiuni diferite. Deci comenzile a=1 si a=2 se refera la variabile distincte.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1076
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved