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

Smazaný obsah Přidaný obsah
korekce textu
úpravy
Řádek 1:
V Počítačovémpočítačovém [[programování]] je '''statická proměnná''' taková, která je alokována staticky. Její životní cyklus trvá celou dobu běhu [[Počítačový_program|programu]]. To je hlavním rozdílem oproti dočasným automatickým proměnným ([[Lokální_proměnná|lokální proměnné]] jsou obecně automatické), jejichžkteré úložiště jejsou alokovánoalokovány a uvolňovánouvolňovány pomocína [[Zásobník_(datová_struktura)|zásobníku]], či objektům, které jsou ukládány dynamicky v paměti typu halda.
 
Když je program (spustitelný nebo [[Knihovna_(programování)|knihovna]]) načten do [[Počítačová_paměť|paměti]], statické proměnné se uloží do data segmentu [[Adresní_prostor|adresního prostoru]] programu (pokud je inicializován), nebo BBSBSS segmentu (pokud inicializován není) a jsou uloženy v odpovídajících částech objektuobjektových souborů.
 
V programovacím [[C_(programovací_jazyk)|jazyce C]] a jemu podobných jazycích se používá klíčové slovo <code>static</code>.
 
== 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í_proměnná|globální]] statická a je tak možné s ní pracovat v jakémkoliv místě v [[kód|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 [[Modulární_programovánímodulární programování|modulu]], což odpovídá v programovacím jazyce C jednotlivým souborů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řídyinstance třídy|instancím]].