Statická proměnná: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
úpravy
Radiosaltbird (diskuse | příspěvky)
m přidána Kategorie:Správa paměti za použití HotCat
Řádek 9: Řádek 9:


V [[Objektově_orientované_programování|objektově orientovaném programování]] je také koncept statických proměnných. Jsou to proměnné typu třída, které jsou definovány staticky. Tyto proměnné jsou přístupné všem [[instance třídy|instancím]].
V [[Objektově_orientované_programování|objektově orientovaném programování]] je také koncept statických proměnných. Jsou to proměnné typu třída, které jsou definovány staticky. Tyto proměnné jsou přístupné všem [[instance třídy|instancím]].

[[Kategorie:Správa paměti]]

Verze z 8. 9. 2015, 19:41

V počítačovém programování je statická proměnná taková, která je alokována staticky. Její životní cyklus trvá celou dobu běhu programu. To je hlavním rozdílem oproti dočasným automatickým proměnným (lokální proměnné jsou obecně automatické), které jsou alokovány a uvolňovány na zásobníku, či objektům, které jsou ukládány dynamicky v paměti typu halda.

Když je program (spustitelný nebo knihovna) načten do paměti, statické proměnné se uloží do data segmentu adresního prostoru programu (pokud je inicializován), nebo BSS segmentu (pokud inicializován není) a jsou uloženy v odpovídajících částech objektových souborů.

V programovacím jazyce C a jemu podobných jazycích se používá klíčové slovo static.

Viditelnost a rozsah

Co se týče viditelnosti a rozsahu, statické proměnné jsou k dispozici po celou dobu běhu programu. Může ovšem mít ale také rozsah omezený. Základní rozdíl je mezi proměnnou, která je globální statická a je tak možné s ní pracovat v jakémkoliv místě kódu a lokální statickou proměnnou, kterou lze vidět pouze v rámci funkce, nebo jiném místním kontextu. Statická proměnná může být také přístupná pouze v rámci modulu, což odpovídá v programovacím jazyce C jednotlivým souborům.

V objektově orientovaném programování je také koncept statických proměnných. Jsou to proměnné typu třída, které jsou definovány staticky. Tyto proměnné jsou přístupné všem instancím.