Klase skladištenja u C: auto, extern, static, klasa registra u C

Što je Storage Class u C?

Klasa pohrane predstavlja vidljivost i lokaciju varijable. On govori iz kojeg dijela koda možemo pristupiti varijabli. Klasa pohrane u jeziku C koristi se za opisivanje sljedećih stvari:

  • Opseg varijable.
  • Mjesto gdje će se varijabla pohraniti.
  • Inicijalizirana vrijednost varijable.
  • Životni vijek varijable.
  • Tko može pristupiti varijabli?

Stoga se klasa pohrane koristi za predstavljanje informacija o varijabli.

NAPOMENA: Varijabla nije povezana samo s vrstom podataka, njezinom vrijednošću, već i s klasom pohrane.

Postoje ukupno četiri vrste standardnih klasa skladištenja. Donja tablica predstavlja klase skladištenja u C.

Klasa skladištenja Svrha
auto To je zadana klasa pohrane.
vanjski To je globalna varijabla.
statički To je lokalna varijabla koja može vratiti vrijednost čak i kad se kontrola prenese na poziv funkcije.
Registar To je varijabla koja se pohranjuje unutar registra.

U ovom C vodiču naučit ćete različite vrste skladišnih klasa u C s primjerima-

Klasa automatskog skladištenja u C

Varijable definirane pomoću klase automatskog spremanja nazivaju se lokalnim varijablama. Auto označava klasu automatskog skladištenja. Varijabla je prema zadanim postavkama u klasi automatske pohrane ako nije izričito navedena.

Opseg automatske varijable ograničen je samo određenim blokom. Nakon što kontrola izađe iz bloka, pristup se uništava. To znači da joj može pristupiti samo blok u kojem je deklarirana automatska varijabla.

Ključna riječ auto koristi se za definiranje klase automatske pohrane. Prema zadanim postavkama automatska varijabla sadrži vrijednost smeća. | _+_ |

Program u nastavku definira funkciju s dvije lokalne varijable | _+_ |

Uzimamo drugi program koji prikazuje razinu opsega 'razina vidljivosti' za automatske varijable u svakom blokovnom kodu koje su međusobno neovisno: | _+_ |

IZLAZAK: | _+_ |

Klasa vanjskog skladištenja u C

Extern označava vanjsku klasu skladištenja. Klasa vanjske pohrane koristi se kada imamo globalne funkcije ili varijable koje se dijele između dvije ili više datoteka.

Ključna riječ vanjski koristi se za deklariranje globalne varijable ili funkcije u drugoj datoteci radi pružanja reference varijable ili funkcije koja je već definirana u izvornoj datoteci.

Varijable definirane pomoću ključne riječi extern nazivaju se globalne varijable. Ove su varijable dostupne u cijelom programu. Uočite da se vanjska varijabla ne može inicijalizirati, već je definirana u izvornoj datoteci. | _+_ |

Prva datoteka: main.c

Example, auto int age; 

Druga datoteka: original.c

 int add(void) { int a=13; auto int b=48; return a+b;} 

Rezultat: | _+_ |

Kako biste sastavili i pokrenuli gornji kod, slijedite korake u nastavku

Korak 1) Izradite novi projekt,

  1. Odaberite Konzolna aplikacija
  2. Pritisnite Idi

Korak 2) Odaberite C i kliknite Dalje

Korak 3) Pritisnite Dalje

Korak 4) Unesite detalje i kliknite Dalje

Korak 5) Pritisnite Završi

Korak 6) Stavite glavni kôd kao što je prikazano u prethodnom programu u datoteku main.c i spremite ga

Korak 7) Izradite novu C datoteku [Datoteka -> novo -> Isprazni datoteku, spremite (kao original.c) i dodajte je u trenutni projekt klikom na 'U redu' u dijaloškom okviru.

Korak 8) Stavite i spremite C kôd datoteke original.c prikazane u prethodnom primjeru bez funkcije main ().

Korak 9) Izgradite i pokrenite svoj projekt. Rezultat je prikazan na sljedećoj slici

Klasa statičkog skladištenja u C

Statičke varijable se koriste unutar funkcije/ datoteke kao lokalne statičke varijable. Mogu se koristiti i kao globalna varijabla

  • Statička lokalna varijabla lokalna je varijabla koja zadržava i pohranjuje svoju vrijednost između poziva funkcije ili bloka i ostaje vidljiva samo funkciji ili bloku u kojem je definirana.
  • Statičke globalne varijable su globalne varijable vidljive samo u datoteku u kojoj je deklarirana.
 #include int main( ) { auto int j = 1; { auto int j= 2; { auto int j = 3; printf ( ' %d ', j); } printf ( '	 %d ',j); } printf( '%d
', j);} 

Imajte na umu da statička varijabla ima zadanu početnu vrijednost nulu i inicijalizira se samo jednom u svom životu. | _+_ |

Rezultat: | _+_ |

Globalne varijable su dostupne u cijeloj datoteci, dok su statičke varijable dostupne samo određenom dijelu koda.

Životni vijek statičke varijable je u cijelom programskom kodu. Varijabla koja je deklarirana ili inicijalizirana pomoću static ključne riječi uvijek sadrži nulu kao zadanu vrijednost.

Registrirajte klasu pohrane u C

Klasu pohrane registra možete koristiti kada želite pohraniti lokalne varijable unutar funkcija ili blokova u registre CPU -a umjesto RAM -a za brzi pristup tim varijablama. Na primjer, 'šalteri' su dobar kandidat za pohranu u registar. | _+_ |

Ključna riječ Registar koristi se za deklariranje klase pohrane registra. Varijable deklarirane pomoću klase pohrane registra imaju životni vijek u cijelom programu.

Sličan je klasi automatske pohrane. Varijabla je ograničena na određeni blok. Jedina je razlika u tome što se varijable deklarirane pomoću klase pohrane registra pohranjuju unutar CPU registara umjesto u memoriju. Registar ima brži pristup nego pristup glavnoj memoriji.

Varijable deklarirane pomoću klase pohrane registra nemaju zadanu vrijednost. Ove se varijable često deklariraju na početku programa. | _+_ |

IZLAZAK: | _+_ |

Sljedeća tablica sažima glavne značajke svake klase pohrane koje se obično koriste u C programiranju

Klasa skladištenja Deklaracija Skladištenje Zadana početna vrijednost Opseg Doživotno
auto Unutar funkcije/blokaMemorijaNepredvidivoUnutar funkcije/blokaUnutar funkcije/bloka
Registar Unutar funkcije/blokaRegistri CPU -aSmećeUnutar funkcije/blokaUnutar funkcije/bloka
vanjski Izvan svih funkcijaMemorijaNulaCijela datoteka i ostale datoteke u kojima je varijabla deklarirana kao vanjskavrijeme izvođenja programa
Statički (lokalni) Unutar funkcije/blokaMemorijaNulaUnutar funkcije/blokavrijeme izvođenja programa
Statičko (globalno) Izvan svih funkcijaMemorijaNulaGlobalnovrijeme izvođenja programa

Sažetak

U ovom smo vodiču raspravljali o klasama pohrane u C, da sažmemo:

  • Klasa pohrane u C koristi se za predstavljanje dodatnih informacija o varijabli.
  • Klasa pohrane predstavlja opseg i životni vijek varijable.
  • Također govori tko može pristupiti varijabli i odakle?
  • Auto, extern, register, static četiri su različite klase pohrane u C programu.
  • Specifikator klase pohrane u jeziku C koristi se za definiranje varijabli, funkcija i parametara.
  • auto se koristi za lokalnu varijablu definiranu unutar bloka ili funkcije
  • register se koristi za spremanje varijable u registre CPU -a, umjesto memorijskog mjesta za brzi pristup.
  • Statičko se koristi i za globalne i za lokalne varijable. Svaki od njih ima svoj slučaj upotrebe u C programu.
  • Extern se koristi za razmjenu podataka između datoteka C projekta.