C Lagringsklasse

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

Hver variabel i C-programmering har to egenskaper: type og lagringsklasse.

Type refererer til datatypen til en variabel. Og lagringsklassen bestemmer omfanget, synligheten og levetiden til en variabel.

Det er fire typer lagringsklasser:

  1. Automatisk
  2. utvendig
  3. statisk
  4. registrere

Lokal variabel

Variablene deklarert i en blokk er automatiske eller lokale variabler. De lokale variablene eksisterer bare innenfor blokken der deklareres.

La oss ta 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 kjører programmet ovenfor, vil du få en feil svartet identifikator i. Det er fordi jeg er erklært inne i forloopblokken. Utenfor blokken er den svart.

La oss ta et annet eksempel.

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

I eksemplet ovenfor er n1 lokal for main()og n2 er lokal for func().

Dette betyr at du ikke får tilgang til n1-variabelen inne, func()da den bare eksisterer inne main(). På samme måte kan du ikke få tilgang til n2-variabelen inne, main()da den bare eksisterer inne func().

Global variabel

Variabler som er erklært utenfor alle funksjoner er kjent som eksterne eller globale variabler. De er tilgjengelige fra alle funksjoner 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); ) 

Produksjon

 n = 7

Anta at en global variabel er erklært i file1. Hvis du prøver å bruke den variabelen i en annen fil file2, vil kompilatoren klage. For å løse dette problemet externbrukes nøkkelordet til file2å indikere at den eksterne variabelen blir deklarert i en annen fil.

Registrer variabel

Den registernøkkelordet brukes til å erklære registervariabler. Registervariabler skulle være raskere enn lokale variabler.

Imidlertid er moderne kompilatorer veldig gode til kodeoptimalisering, og det er en sjelden sjanse for at bruk av registervariabler vil gjøre programmet raskere.

Med mindre du jobber med innebygde systemer der du vet hvordan du optimaliserer koden for den gitte applikasjonen, er det ingen bruk av registervariabler.

Statisk variabel

En statisk variabel blir deklarert ved å bruke staticnøkkelordet. For eksempel;

 statisk int i;

Verdien på en statisk variabel vedvarer til slutten av programmet.

Eksempel 2: Statisk variabel

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

Produksjon

 6 11

Under den første funksjonsanropet initialiseres verdien til c til 1. Verdien økes med 5. Nå er verdien på c 6, som skrives ut på skjermen.

Under den andre funksjonsanropet initialiseres ikke c til 1 igjen. Det er fordi c er en statisk variabel. Verdien c økes med 5. Nå blir verdien 11, som skrives ut på skjermen.

Interessante artikler...