C Trieda skladovania

V tomto výučbe sa dozviete o rozsahu a životnosti miestnych a globálnych premenných. Dozviete sa tiež o statických a registrových premenných.

Každá premenná v programovaní C má dve vlastnosti: typ a trieda úložiska.

Typ označuje dátový typ premennej. A trieda úložiska určuje rozsah, viditeľnosť a životnosť premennej.

Existujú 4 typy triedy úložiska:

  1. automatické
  2. externý
  3. statický
  4. Registrovať

Miestna premenná

Premenné deklarované vo vnútri bloku sú automatické alebo lokálne premenné. Lokálne premenné existujú iba vo vnútri bloku, v ktorom sú deklarované.

Zoberme si príklad.

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

Po spustení vyššie uvedeného programu sa zobrazí chybový nedeklarovaný identifikátor i. Je to preto, že i je deklarované vo vnútri forbloku slučky. Mimo bloku je to neprihlásené.

Zoberme si ďalší príklad.

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

Vo vyššie uvedenom príklade je n1 lokálne main()a n2 je lokálne func().

To znamená, že nemôžete získať prístup k premennej n1 vo vnútri, func()pretože existuje iba vo vnútri main(). Podobne nemôžete získať prístup k premennej n2 vo vnútri, main()pretože existuje iba vo vnútri func().

Globálna premenná

Premenné, ktoré sú deklarované mimo všetkých funkcií, sú známe ako vonkajšie alebo globálne premenné. Sú prístupné z ktorejkoľvek funkcie vo vnútri programu.

Príklad 1: Globálna premenná

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

Výkon

 n = 7

Predpokladajme, že globálna premenná je deklarovaná v file1. Ak sa pokúsite použiť túto premennú v inom súbore file2, kompilátor sa sťažuje. Na vyriešenie tohto problému sa kľúčové slovo externpoužíva file2na označenie, že externá premenná je deklarovaná v inom súbore.

Registrovať premennú

registerKľúčové slovo sa používa na deklarovať registra premenné. Registrové premenné mali byť rýchlejšie ako lokálne premenné.

Moderné kompilátory sú však veľmi dobré v optimalizácii kódu a existuje zriedkavá šanca, že použitie premenných registrov zrýchli váš program.

Pokiaľ nepracujete na zabudovaných systémoch, kde viete optimalizovať kód pre danú aplikáciu, nepoužívate premenné registrov.

Statická premenná

Statická premenná je deklarovaná pomocou statickľúčového slova. Napríklad;

 statický int i;

Hodnota statickej premennej pretrváva až do konca programu.

Príklad 2: Statická premenná

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

Výkon

 6 11

Počas prvého volania funkcie sa hodnota c inicializuje na 1. Jeho hodnota sa zvýši o 5. Teraz je hodnota c 6, čo sa vytlačí na obrazovku.

Počas druhého volania funkcie sa c znova neinicializuje na 1. Je to preto, že c je statická premenná. Hodnota c sa zvýši o 5. Teraz bude mať hodnotu 11, ktorá sa vytlačí na obrazovku.

Zaujímavé články...