C Opbevaringsklasse

I denne vejledning lærer du om omfanget og levetiden for lokale og globale variabler. Du vil også lære om statiske variabler og registervariabler.

Hver variabel i C-programmering har to egenskaber: type og lagerklasse.

Type henviser til datatypen for en variabel. Og lagerklassen bestemmer omfanget, synligheden og levetiden for en variabel.

Der er 4 typer opbevaringsklasser:

  1. automatisk
  2. ekstern
  3. statisk
  4. Tilmeld

Lokal variabel

Variablerne deklareret inde i en blok er automatiske eller lokale variabler. De lokale variabler findes kun inden for den blok, hvori de erklæres.

Lad os tage et eksempel.

 #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; )

Når du kører ovenstående program, får du en fejl, der er ikke angivet, id. Det er fordi jeg er erklæret inde i forloopblokken. Uden for blokken er den sort.

Lad os tage et andet eksempel.

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

I ovenstående eksempel er n1 lokal for main()og n2 er lokal for func().

Dette betyder, at du ikke kan få adgang til n1-variablen indeni, func()da den kun findes indeni main(). På samme måde kan du ikke få adgang til n2-variablen indeni, main()da den kun findes indeni func().

Global variabel

Variabler, der erklæres uden for alle funktioner, er kendt som eksterne eller globale variabler. De er tilgængelige fra enhver funktion inde i programmet.

Eksempel 1: Global variabel

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

Produktion

 n = 7

Antag, at en global variabel erklæres i file1. Hvis du prøver at bruge den variabel i en anden fil file2, klager compileren. For at løse dette problem externbruges nøgleordet til file2at angive, at den eksterne variabel erklæres i en anden fil.

Registrer variabel

Den registersøgeord bruges til at erklære registerdata variabler. Registervariabler skulle være hurtigere end lokale variabler.

Moderne compilere er dog meget gode til kodeoptimering, og der er en sjælden chance for, at brug af registervariabler gør dit program hurtigere.

Medmindre du arbejder på indlejrede systemer, hvor du ved, hvordan du optimerer koden til den givne applikation, er der ingen brug af registervariabler.

Statisk variabel

En statisk variabel erklæres ved hjælp af staticnøgleordet. For eksempel;

 statisk int i;

Værdien af ​​en statisk variabel vedvarer indtil programmets afslutning.

Eksempel 2: Statisk variabel

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

Produktion

 6 11

Under det første funktionsopkald initialiseres værdien af ​​c til 1. Dens værdi øges med 5. Nu er værdien af ​​c 6, som er trykt på skærmen.

Under det andet funktionsopkald initialiseres c ikke til 1 igen. Det er fordi c er en statisk variabel. Værdien c øges med 5. Nu bliver dens værdi 11, som er trykt på skærmen.

Interessante artikler...