7. Alokácia pamäte
7.2 Statická alokácia, statické premenné
Statickú alokáciu využívame zatiaľ asi častejšie. Ak
vieme prekladaču vopred povedať, aké budeme mať v programe
pamäťové nároky (napr. budeme potrebovať dve premenné typu int,
pole záznamov s 50 prvkami a pod.), postačí, keď
deklarujeme potrebné premenné v úvode programu (v C ešte pred
funkciou main , v Pascale v úvode programu
v časti definícií a deklarácií). O vyhradenie potrebnej
pamäte sa postará prekladač.
Premenné, pre ktoré sa pamäť alokuje staticky, nazývame statické premenné. Ide o globálne premenné a v C tiež o lokálne premenné označené ako static .
Pre statické premenné sa alokuje miesto v dátovej oblasti
a to hneď na začiatku spustenia programu, existujú v priebehu
vykonávania programu a zanikajú až po skončení programu, keď sa
odovzdá riadenie späť operačnému systému a tento všetky statické
alokácie naraz zruší.
Statická alokácia nám však nemusí vždy vyhovovať.
Skutočnosť, že pre statické premenné je v pamäti vyhradené miesto
v priebehu vykonávania programu natrvalo (až do skončenia
programu), môže nepriaznivo vplývať napr. na obsadenie pamäti - často
ju zaťažujeme zvlášť pri práci s poliami, kde musíme vopred nastaviť
maximálny (často len teoreticky využiteľný) rozsah alebo pamäť zbytočne
"okupujú" premenné, ktoré sme použili len pri nejkom pomocnom výpočte
a pre ďalší chod programu už nie sú potrebné.
|