type qualifiers storage classes c
Dôležitosť kvalifikátorov typu a tried úložného priestoru v C ++.
V tomto Exkluzívna školiaca séria C ++ , tému premenných ešte rozšírime a v tomto tutoriále si pozrime kvalifikátory typov a triedy úložiska v C ++. Aj keď je to malá téma, je veľmi dôležitá a dôležitá, čo sa programovania v C ++ týka.
Kvalifikátory typov v C ++ nemenia význam premenných alebo entít, s ktorými sa používajú, skôr k entite iba pridajú ďalšie informácie.
Čo sa dozviete:
Zadajte kvalifikátory v C ++
Kvalifikátory písania v C ++ pridávajú do premennej ďalšie vlastnosti, ako je napríklad konštanta alebo premenná.
na čo sa používa c ++
Kvalifikátory typu vyjadrujú spôsob prístupu k premennej alebo miesto, kde je premenná uložená v pamäti tak, že zachovajú rovnaký význam alebo interpretáciu premennej. Svojím spôsobom typové kvalifikátory pridávajú do premenných ďalšie spresnenie.
V jazyku C ++ je kvalifikátor typu určený tesne pred špecifikátorom typu (údajovým typom) premennej.
Kvalifikátory typov v C ++ sú klasifikované takto:
# 1) konšt
Špecifikátor typu „const“ má definovať objekty typu const. Objekt const alebo premennú nie je možné po deklarácii zmeniť. Ak dôjde k pokusu o zmenu objektu const alebo premennej, kompilátor vyvolá chybu. O konštátach / doslovnom sme už videli v našom predchádzajúcom tutoriáli.
Definícia konštánt pomocou kľúčového slova „const“ zodpovedá kvalifikátoru typu „const“.
# 2) volatilné
Kvalifikátor typu „volatile“ znamená, že hodnotu premennej označenej volatile je možné meniť inými spôsobmi, ktoré program nešpecifikuje. Premenné, ktoré sú volatilné, sa menia zvyčajne kvôli niektorým externým faktorom a nie nevyhnutne kvôli programu. Inými slovami, majú nestálu povahu.
Napríklad, premenná, ktorá sníma teplotu v reálnom slove, môže byť volatilná, pretože program nemusí úplne riadiť teplotu na čítanie.
# 3) premenlivé
Kvalifikátor „premenlivého“ typu umožňuje modifikáciu členov alebo premennej.
Premenlivý kvalifikátor sa zvyčajne používa na členov nestatickej triedy nekonštantného a nereferenčného typu. Podľa konkrétnych situácií môžeme potrebovať, aby niektoré premenné zostali nezmeniteľné (nemožno ich zmeniť) a niektoré premenné zmeniteľné. Tento typ kvalifikácie je veľmi užitočný, ak chceme premenlivé charakteristiky.
Triedy úložných priestorov v C ++
Zatiaľ sme si podrobne rozobrali všetky premenné C ++. Videli sme, že premenné sa deklarujú s príslušnými dátovými typmi a potom sa používajú v programe. Aby sme mohli úplne definovať premennú, vyžadujeme okrem ich dátových typov aj triedy úložných priestorov.
Aj keď sme doteraz pre premenné nezadali žiadne triedy úložných priestorov, pre všetky premenné bola použitá predvolená trieda úložiska „auto“.
Čo sú to triedy ukladania?
Triedy úložného priestoru určujú, ako má premenná alebo funkcia spracovať kompilátor a ako má byť úložný priestor alokovaný pre premennú. Definuje viditeľnosť alebo rozsah a životnosť premennej. Životnosť premennej predstavuje to, ako dlho zostane premenná aktívna.
Viditeľnosť alebo rozsah premennej závisí od toho, ku ktorým funkciám alebo modulom bude premenná prístupná. Tieto triedy úložiska sú určené pred údajovým typom premennej.
V C ++ máme nasledujúce triedy úložiska:
# 1) Trieda automatického ukladania
Toto je predvolená trieda úložiska. Trieda úložiska „Auto“ sa použije na lokálne premenné a kompilátor ju automaticky priradí lokálnym premenným. Lokálne premenné, ktorým predchádza kľúčové slovo „auto“, zostanú aktívne vo funkcii, v ktorej sú deklarované, a po ukončení funkcie prejdú z rozsahu.
Ak premenné, ktoré majú triedu „automatického“ ukladania, nie sú inicializované alebo im nie je priradená žiadna hodnota, potom majú odpadky alebo nedefinované hodnoty.
Pozrime sa na príklad automatických premenných v programe C ++.
#include using namespace std; int main() { int i; float f; cout<<'Variable i = '< # 2) Zaregistrujte si triedu úložiska Keď máme požiadavku, aby premenná potrebovala rýchlejší prístup, použijeme triedu úložiska registra. Takže namiesto ukladania premenných do pamäte s náhodným prístupom (RAM) sú tieto premenné uložené v registri CPU a majú rovnakú veľkosť ako register.
Pretože tieto premenné nemajú miesto v pamäti, nemôžeme s nimi použiť operátor „&“.
Premenná s triedou úložiska Register nezaručuje, že premenná bude vždy uložená v registri. Namiesto toho iba predpokladá, že premenná môže byť uložená v registri a je úplne závislá od hardvéru a implementácie.
Premenné registra majú rozsah a životnosť podobné automatickým premenným.
Napríklad,
#include using namespace std; int main() { int i; register float f; cout<<'Variable i = '< # 3) Trieda externého úložiska Trieda externého úložiska sa vyžaduje, keď je potrebné zdieľať premenné vo viacerých súboroch. Externé premenné majú globálny rozsah a tieto premenné sú viditeľné mimo súboru, v ktorom sú deklarované.
Pretože externé premenné sú premenné deklarované a definované vonku v inom súbore, nie sú inicializované.
Externé premenné majú globálny rozsah a životnosť externých premenných je taká dlhá, ako je ukončený program, v ktorom sú deklarované.
Externé premenné je možné deklarovať takto:
extern int temp; int temp;
Vo vyššie uvedenom príklade máme dve deklarácie premenných s rovnakým názvom, ale prvá je externá premenná definovaná inde. Táto externá premenná bude užitočná, keď do nášho programu zahrnieme zdrojový súbor, v ktorom je externá premenná temp definovaná.
# 4) Trieda statického úložiska
Trieda statického úložiska hovorí kompilátoru, aby udržiaval hodnotu premennej počas celej životnosti programu. Statické premenné sú podobné lokálnym premenným, predchádza im však statické kľúčové slovo.
Na rozdiel od miestnych premenných, ktoré po ukončení funkcie prejdú z rozsahu, statické premenné nevyjdú z rozsahu, keď dôjde k ukončeniu funkcie alebo bloku a ich hodnoty sa zachovajú medzi volaniami funkcií.
Statické premenné sa inicializujú a úložisko sa im pridelí iba raz za dobu životnosti programu. Statické premenné sa inicializujú na 0, ak nie sú, sú už inicializované počas deklarácie.
Pozrime sa na nasledujúci príklad, aby sme lepšie pochopili triedu statického úložiska.
#include using namespace std; void printvar() { static int var; var++; cout<<'static variable var = '< Výkon:
printvar volanie 1: statická premenná var = 1
printvar volanie 2: statická premenná var = 2
printvar volanie 3: statická premenná var = 3
printvar volanie 4: statická premenná var = 4
Vo vyššie uvedenom kóde máme funkciu ‘printvar’, v ktorej sme deklarovali statickú premennú var typu int. Túto premennú potom zvýšime a vytlačíme. V hlavnej funkcii voláme funkciu printvar štyrikrát.
Teraz skontrolujte výstup. Výstup ukazuje, že s každým volaním funkcie sa statická premenná var zvyšuje o 1 od predchádzajúcej hodnoty. Toto je trieda statického úložiska, ktorá pomáha premennej udržiavať jej hodnotu medzi volaniami funkcií. Statická premenná sa nereinicializuje pre každé volanie funkcie.
Mali by sme si tiež všimnúť, že vo funkcii printvar sme práve deklarovali statickú premennú a neinicializovali sme ju. Je pozoruhodné, že keď neinicializujeme statické premenné, sú im priradené počiatočné hodnoty 0.
Poznámka: Triedu statického úložiska je možné použiť aj na globálne premenné. V takom prípade bude mať premenná globálny rozsah a navyše statické úložisko.
# 5) Premenlivá trieda úložiska
Trieda premenlivého úložného priestoru sa použije iba na objekty triedy. Použitím premenlivej triedy úložiska môže člen objektu prepísať členskú funkciu „const“. To znamená, že premenlivý člen alebo objekt je možné upraviť členskou funkciou, ktorá je „const“.
Viac o konštantných funkciách a objektoch, ako aj o premenlivých členoch sa dozvieme v našich ďalších tutoriáloch, keď sa dozvieme o objektovo orientovanom programovaní v C ++.
mp3 hudba na stiahnutie bezplatná aplikácia pre Android
Záver
Toto je všetko o špecifikátoroch typov a triedach úložiska v C ++. Dúfame, že sa nám prostredníctvom tohto tutoriálu podarilo objasniť všetky pojmy týkajúce sa tried ukladacích priestorov a špecifikátorov typov.
V našom pripravovanom výučbe sa dozvieme viac o rôznych operátoroch používaných v C ++ spolu s ich použitím.
=> Kompletnú sériu školení v C ++ nájdete tu
Odporúčané čítanie
- Premenné v C ++
- Premenné Pythonu
- Výukový program pre rozhranie Java a abstraktnú triedu s príkladmi
- Konverzie typu v C ++
- Premenné VBScript: Ako deklarovať a používať premenné - VBScript Dim
- Premenné a funkcie JMeter
- 10 NAJLEPŠÍCH poskytovateľov cloudového úložiska zdarma (online úložisko 2021)
- Typy testovania migrácie: S testovacími scenármi pre každý typ