C Clasa de depozitare

În acest tutorial, veți afla despre domeniul de aplicare și durata de viață a variabilelor locale și globale. De asemenea, veți afla despre variabilele statice și de înregistrare.

Fiecare variabilă din programarea C are două proprietăți: tip și clasă de stocare.

Tipul se referă la tipul de date al unei variabile. Și, clasa de stocare determină domeniul de aplicare, vizibilitatea și durata de viață a unei variabile.

Există 4 tipuri de clase de stocare:

  1. automat
  2. extern
  3. static
  4. Inregistreaza-te

Variabilă locală

Variabilele declarate în interiorul unui bloc sunt variabile automate sau locale. Variabilele locale există doar în interiorul blocului în care este declarată.

Să luăm un exemplu.

 #include int main(void) ( for (int i = 0; i < 5; ++i) ( printf("C programming"); ) // Error: i is not declared at this point printf("%d", i); return 0; )

Când rulați programul de mai sus, veți primi o eroare identificator nedeclarat i. Este pentru că i este declarat în interiorul forblocului de buclă. În afara blocului, este nedeclarat.

Să luăm un alt exemplu.

  int main() ( int n1; // n1 is a local variable to main() ) void func() ( int n2; // n2 is a local variable to func() ) 

În exemplul de mai sus, n1 este local pentru main()și n2 este local pentru func().

Aceasta înseamnă că nu puteți accesa variabila n1 din interior func(), deoarece există doar în interior main(). În mod similar, nu puteți accesa variabila n2 din interior main(), deoarece există doar în interior func().

Variabilă globală

Variabilele declarate în afara tuturor funcțiilor sunt cunoscute ca variabile externe sau globale. Acestea sunt accesibile din orice funcție din cadrul programului.

Exemplul 1: Variabilă globală

 #include void display(); int n = 5; // global variable int main() ( ++n; display(); return 0; ) void display() ( ++n; printf("n = %d", n); ) 

Ieșire

 n = 7

Să presupunem că o variabilă globală este declarată în file1. Dacă încercați să utilizați acea variabilă într-un fișier diferit file2, compilatorul se va plânge. Pentru a rezolva această problemă, cuvântul cheie externeste utilizat file2pentru a indica faptul că variabila externă este declarată într-un alt fișier.

Variabilă de înregistrare

Cuvântul registercheie este utilizat pentru a declara variabile de registru. Variabilele de înregistrare ar fi trebuit să fie mai rapide decât variabilele locale.

Cu toate acestea, compilatoarele moderne sunt foarte bune la optimizarea codului și există o șansă rară ca utilizarea variabilelor de înregistrare să vă facă programul mai rapid.

Cu excepția cazului în care lucrați la sisteme încorporate în care știți cum să optimizați codul pentru aplicația dată, nu există utilizarea variabilelor de registru.

Variabilă statică

O variabilă statică este declarată utilizând staticcuvântul cheie. De exemplu;

 static int i;

Valoarea unei variabile statice persistă până la sfârșitul programului.

Exemplul 2: Variabilă statică

 #include void display(); int main() ( display(); display(); ) void display() ( static int c = 1; c += 5; printf("%d ",c); ) 

Ieșire

 6 11

În timpul primului apel funcțional, valoarea lui c este inițializată la 1. Valoarea sa este mărită cu 5. Acum, valoarea lui c este 6, care este imprimată pe ecran.

În timpul celui de-al doilea apel funcțional, c nu este inițializat din nou la 1. Pentru că c este o variabilă statică. Valoarea c este mărită cu 5. Acum, valoarea sa va fi 11, care este tipărită pe ecran.

Articole interesante...