A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Globální proměnná je v informatice v programování proměnná s globálním rozsahem, čímž je myšleno, že je viditelná (tedy přístupná) v celém počítačovém programu, až na kontexty, v nichž je zastíněná (tj. překrytá lokální proměnnou se stejným jménem). Soubor všech globálních proměnných je známý jako globální prostředí nebo globální stav. V komplikovaných jazycích, globální proměnné jsou obecně statické proměnné, které jsou dostupné po celou dobu běhu programu. Ačkoliv v případě interpretovaných programovacích jazycích (včetně příkazového řádku) jsou globální proměnné alokovány dynamicky při jejich deklaraci, jelikož nejsou známy předem.
V některých jazycích jsou ve výchozím nastavení všechny proměnné globální, ale ve většině moderních jazyků mají proměnné omezenou působnost (například lexikální omezení). Globální proměnné jsou pak deklarovány často ve vyšší úrovní programu. V jiných jazycích globální proměnné neexistují. Obecně to jsou modulární programovací jazyky, které prosazují modulární strukturu, nebo objektově orientované programovací jazyky, které dostupnost proměnných řeší strukturou tříd.
Použití
Interakce mechanismů s globálními proměnnými se nazývá globální prostředí. Paradigma globálního prostředí je opakem pro paradigma lokálního prostředí, kde mají všechny proměnné lokální, nesdílnou paměť (a proto veškeré interakce mezi nimi pracují pomocí přeposílání zpráv).
Jsou obvykle považovány za nežádoucí. Globální proměnná může být potenciálně upravována odkudkoliv a kterákoliv část programu na ni může záviset (pokud není umístěna v chráněné paměti anebo určená pouze pro čtení). Globální proměnná proto má neomezený potenciál pro vytváření vzájemné závislosti a přidáním vzájemné závislosti zvyšuje složitost. Globální proměnné ztěžují včlenění modulů, protože v softwaru, který byl napsán někým jiným, mohla být použita stejná globální jména; tyto problémy lze omezit zavedením konvence pojmenování. Nicméně v některých případech může být použití globálních proměnných vhodné. Například mohou být využity k tomu, aby se zabránilo nutnosti neustále předávat často využívané proměnné v několika funkcích. V praxi je to tak, že velké programy mohou vysloveně vyžadovat velký počet globálních proměnných. Velké programy obsahují mnoho parametrů, které jsou sdíleny mezi různými funkcemi. V tomto případě musíme dbát na to, abychom se ujistili, že sdílení globálních dat mezi funkcemi bude probíhat bez nehody.
Globální proměnné jsou značně používány pro předávání informací mezi částmi kódu, které nesdílí takzvaný vztah volajícího/volaného (caller/callee) jako souběžné podprocesy či signální manipulátory. V jazycích (včetně jazyka C), kde každý soubor definuje implicitní jmenný prostor, se většina problémů s globálními proměnnými eliminuje oproti jazykům s globálním jmenným prostorem. Bez správného zamykání, jako např. vzájemné vyloučení (mutex), je kód používající globální proměnné nebezpečný s výjimkou proměnných jen pro čtení, které se nacházejí v chráněné paměti.
Systémové proměnné
Systémové proměnné jsou prostředky poskytované některými operačními systémy. Uvnitř OS shellu (ksh v Unixu, bash v Linuxu, COMMAND.COM v DOSu a CMD.EXE ve Windows). Například v unixových systémech je možné z běžné proměnné vytvořit systémovou proměnnou pomocí klíčového slova „export“. Jiný kód než v shellu přistupuje k těmto proměnným pomocí API metod, jako například getev() a setenv().
Proměnné prostředí jsou lokální uvnitř určitého procesu, ve kterém jsou deklarovány. To znamená, že pokud spustíme dva terminály (dva různé procesy shellu) a změníme systémovou proměnnou, tak tato změna nebude vidět v ostatních terminálech. Ale když je vytvořen nový podřízený proces (potomek), pak zdědí všechny systémové proměnné a jejich hodnoty z nadřazeného procesu (rodiče).
Global-only a global-by-default
Několik nestrukturovaných jazyků, jako například starší verze jazyků BASIC, COBOL a FORTRAN (1956) poskytují pouze globální proměnné. Později Fortran II (1968) představil podprogramy s lokálními proměnnými a klíčové slovo COMMON pro přístup ke globálním proměnným. Proměnné jsou implicitně globální také v jazycích Forth, Lua, Perl a ve většině shellů.
Podle jazyků
C a C++
Programovací jazyk C nemá klíčové slovo global. Nicméně proměnné deklarované vně funkcí jsou v rámci souboru dostupné odkudkoli.
Java
Některé jazyky jako Java, nemají globální proměnné. V Javě jsou všechny proměnné, které nejsou lokální, součástí konkrétní třídy. Proto jsou proměnné dostupné pouze v rámci třídy či její metody. Položky typu „static public“ jsou použity pro většinu účelů jako globální proměnné v jiných jazycích protože jejich chování je velmi podobné. Za globální proměnnou však může být považován singleton, proto také tento návrhový vzor bývá kritizován.
PHP
PHP má několik méně obvyklých způsobů přístupu ke globálním proměnným. Proměnné deklarované vně funkcí jsou dostupné v celém skriptu. Mají-li být dostupné uvnitř funkcí, musí je programátor importovat pomocí klíčového slova global
.
Některé předdefinované proměnné, známé jako superglobální, jsou dostupné vždy. Všechna jsou pole. Superglobální proměnná $GLOBALS
obsahuje všechny proměnné definované mimo funkce. Změnou jejich elementů se změní obsah původních proměnných a přidáním elementu se vytvoří proměnná nová. Superglobální proměnné $_POST a $_GET jsou široce využívány při programování webových aplikací.
Ostatní jazyky
- V jazyce Python a MATLAB může být globální proměnná deklarována kdekoliv pomocí klíčového slova.
- Globální proměnné v jazyce Ruby jsou vyznačené symbolem dolar (‚$‘).
Reference
V tomto článku byl použit překlad textu z článku Global variable na anglické Wikipedii.
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antény
Chemické zdroje elektriny
Chladenie v elektrotechnike
Elektrická sústava automobilu
Elektrická trakcia
Elektrické prístroje
Elektrické súčiastky
Elektrické spotrebiče
Elektrické stroje
Čítanie (elektrotechnika)
Činný výkon
Štatistická dynamika
Živý vodič
Admitancia
Antiparalelné zapojenie
Asynchrónny motor
Blúdivý prúd
Bočník (elektrotechnika)
Diak (polovodičový prvok)
Displej s kvapalnými kryštálmi
Elektrická inštalácia
Elektrická rezonancia
Elektrická sila
Elektrická vodivosť
Elektrické zariadenie
Elektrický obvod
Elektrický zvonec
Elektroenergetika
Elektromer
Elektrometer
Elektromobil
Elektromotor
Elektromotorické napätie
Elektrotechnický náučný slovník
Elektrotechnika
Elektrotechnológia
Fázor
Faradayova klietka
Frekvencia (fyzika)
Graetzov mostík
Impedancia
Indukčnosť
Induktancia
Istič
Izolácia (elektrotechnika)
Izolant
Jadro vodiča
Jednobran
Jednosmerný prúd
Joulovo teplo
Katóda
Koaxiálny kábel
Kompenzácia účinníka
Konduktometria
Konektor (elektrotechnika)
Korónový výboj
Lanko (elektrotechnika)
Leptanie
Logické hradlo
Magnetická susceptibilita
Magnetizácia (veličina)
Merný elektrický odpor
Mobilné zariadenie
Napájací zdroj
Napäťový chránič
Napäťový násobič
Nortonova veta
Odpínač
Odpojovač
OLED
Olovený akumulátor
Paralelné zapojenie
Peltierov článok
Plošná hustota elektrického prúdu
Poistka (elektrotechnika)
Posuvný prúd
Prúdový chránič
Prenosové médium
Prieletový klystrón
Primárny elektrochemický článok
Reaktancia
Rekuperácia (dopravný prostriedok)
Relé
Reproduktorová výhybka
Rezistancia
Rozhranie (interface)
Sériové zapojenie
Seebeckov jav
Sekundárny elektrochemický článok
Settopbox
Skrat
Sonar
Spínač
Spínaný zdroj
Straty v mikropásikových vedeniach
Striedavý prúd
Stupeň ochrany krytom
Svetelná výbojka
Symetrizačný člen
Technická normalizácia
Tepelné relé
Tepelne vodivostný detektor
Termočlánok
Théveninova veta
Transformátor
Transformátor s fázovou reguláciou
Trojfázová sústava
Tuhá fáza (elektronika)
Tyratrón
Usmerňovač (elektrotechnika)
Uzemnenie
Uzol (vodiče)
Vírivý prúd
Výbojka
Varistor
Ventilátor
Vodič (elektrotechnika)
Voltov stĺp
Vstavaný systém
Zásuvka (elektrotechnika)
Zdroj (elektrotechnika)
Zisk antény
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk