Lagringsklasser i C

Lagringsklasser i C
Lagringsklasser er et veldig viktig tema i C. Hvis vi har utviklet konseptet vårt i C, spesielt om livet og omfanget av en hvilken som helst variabel, må vi vite om lagringsklasser i C. I DOS-basert arkitektur eller 16-biters arkitektur som Turbo C ++ 3. 0, det tar minnet om 2 byte. Men i 32-biters eller 64-biters arkitektur som Dev C ++, tar kodeblokker og heltall minnet om 4 byte.

Tre egenskaper for variabler

  1. Navn på variabel.
  2. Størrelse på minneblokken.
  3. Type innhold.

Andre egenskaper for variabel

Standardverdi, omfang, liv, lagring.

Standardverdi: Hvis vi ikke initialiserer noen verdi til en variabel på tidspunktet for variabel erklæring, så hva er verdien av variabelen x? Da kalles verdien av x standardverdien, som er et annet kjennetegn ved variabelen.

Oppbevaring: Lagring betyr hvor minnet er tildelt for en variabel, enten RAM eller i CPU -registeret.

Omfang: Begrensningene eller områdene der vi får tilgang til en variabel

Liv: Spennet mellom å skape og ødelegge en variabel kalles livet. Disse 4 egenskapene kan vi innse på tidspunktet for å erklære en variabel.

Det er 4 typer lagringsklasser i erklæringserklæringen.

  1. Automatisk
  2. Registrere
  3. Statisk
  4. Utvendig
Lagringsklasse Nøkkelord Standardverdi Oppbevaring omfang Liv
1. Automatisk bil Søppel RAM Begrenset til blokkene der den er erklært Til utførelsen av blokken den er erklært
2. Registrere registrere Søppel registrere samme samme
3. Statisk statisk 0 (null) RAM Samme Til slutten av programmet
4. Ekstern ekstern 0 (null) RAM Global samme

Automatisk lagringsklasseprogram

Programmering Eksempel1

#inkludere
int main ()

// Auto -variabel som standard;
int x = 5;
printf ("%d \ n", x);

int x = 2;
printf ("%d \ n", x);

printf ("%d \ n", x);
retur 0;

Produksjon

Forklaring

Med pilsymbolet kan vi skrive et automatisk nøkkelord for å gjøre variabelen automatisk. Hvis vi skriver ingenting der, er variabelen en automatisk type (som standard). Regelen er å prioritere den lokale variabelen hvis navnet på to variabler i funksjonen er det samme.

Registrer lagringsklasseprogram

Programmering Eksempel 2

#inkludere
int main ()

// Registrer nøkkelord brukes;
Registrer int x = 4;
int y;
y = x ++;
x--;
y = x+5;
printf (" %d %d", x, y);
retur 0;

Produksjon

Forklaring

Hvis det i et program brukes noen variabler gjentatte ganger, i så fall lagrer vi variabelen x inne i et CPU -register i stedet for RAM. Det reduserer behandlingstiden for programmet vårt, men det er bare aktuelt Int og Char betyr lite minne svart. Hvis registeret ikke er tilgjengelig, konverterer det automatisk registerlagringsklassen til en bilklasse.

Statisk lagringsklasseprogram

Programmeringseksempel 3

#inkludere
void f1 ();
int main ()

f1 ();
f1 ();
retur 0;

void f1 ()

int i = 0;
i ++;
printf ("i =%d \ n", i);

Produksjon

Forklaring

Her får vi resultat to 1 fordi vi erklærer variabelen som standard auto.

Programmering Eksempel 4

#inkludere
void f1 ();
int main ()

f1 ();
f1 ();
retur 0;

void f1 ()

// statisk variabel er erklært;
statisk int i = 0;
i ++;
printf ("i =%d \ n", i);

Produksjon

Forklaring

Siden det er en statisk variabel, blir denne variabelen ikke ødelagt fra kroppen til F1. Så når F1 () kalles 2. gang, vil utgangen være 2.

Ekstern lagringsklasse

Programmering Eksempel 5

#inkludere
int x;
int main ()

// ekstern er erklært;
ekstern int x;
printf ("x =%d", x);
void f1 (void);
f1 ();
printf ("x =%d", x);
retur 0;

void f1 ()

x ++;
printf ("x =%d", x);

Produksjon

Forklaring

Ettersom det er en global variabel, er variabelen tilgjengelig hvor som helst i programmet, og livet er gjennom hele programmet.1. printf () funksjon Skriv ut verdien på x = 0, ettersom den er standardverdi = 0, deretter ringer f1 (), deretter x økes til 1, og skriv ut verdien 1. Så går kontroll igjen til hoved () -funksjonen etter F1 () og skriver ut verdien til x igjen 1.

Programmering Eksempel 6

#inkludere
int x;
void f1 ();
int main ()

ekstern int x;
printf ("x =%d \ n", x);
f1 ();
printf ("x =%d \ n", x);
retur 0;

void f1 ()

int x = 5;
x ++;
printf ("x =%d \ n", x);

Produksjon

Forklaring

Ettersom variabelen x i funksjonen F1 () er en automatisk variabel, er den bare tilgjengelig i F1 ().Så her blir printf () funksjon utskrift verdien av x = 5, men i main () -funksjonen blir x a behandlet som ekstern variabel, fordi x er erklært som global. Så det skriver ut verdien på x = 0.

Hvor erklærer vi eksternt nøkkelord?

En ekstern variabel er erklært utenfor enhver funksjon. Men det er betegnet at variabelen er ekstern inne i hovedfunksjonen som vist i dette eksemplet, eller den er betegnet hvor som helst i programmet.

Konklusjon

Fra det ovennevnte konseptet med C Language Storage-klasser, er det klart for leseren at når vi administrerer data gjennom programvare, trenger vi litt variabel eller lagringsplass for å lagre dataene. Vi har nå en klar idé fra denne artikkelen om hvordan dataene skal lagres i en variabel.