Globální proměnná

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 2. května 2018; kontroly vyžadují 4 úpravy .

Globální proměnná v programování  je proměnná, jejíž rozsah je celý program, pokud není přepsána . Mechanismy pro interakci s globálními proměnnými se nazývají mechanismy pro přístup ke globálnímu prostředí nebo stavu ( globální prostředí , globální stav ) .  Globální proměnné lze použít pro interakci mezi procedurami a funkcemi jako alternativu k předávání argumentů a vracení hodnot [1] .

Použití globálních proměnných má nevýhody: globální proměnnou lze v libovolném bodě programu změnit (pokud není v chráněné paměti nebo deklarována jako proměnná pouze pro čtení ), což může ovlivnit činnost ostatních částí programu. program [2] . Z tohoto důvodu mají globální proměnné neomezený potenciál pro vytváření vzájemných závislostí, což vede ke složitosti programu. V některých případech je však užitečné použít globální proměnné. Lze je například použít, abyste nemuseli často používané proměnné předávat více funkcemi. Globální proměnné také znesnadňují integraci modulů , protože dříve napsaný kód může obsahovat globální proměnné se stejnými názvy jako ve vložitelném modulu.

Globální proměnné se široce používají k předávání dat mezi částmi kódu, které se neúčastní vztahů mezi voláními, jako jsou paralelní vlákna provádění nebo obslužné programy signálů . Bez správného uzamčení (například pomocí mutexu ) nebude kód využívající globální proměnné bezpečné pro vlákna , s výjimkou proměnných pouze pro čtení v chráněné oblasti paměti . S nárůstem počtu proměnných, a tedy i zámků , se zvyšuje pravděpodobnost uváznutí .

Příklad v C :

int a ; /* Deklarování globální celočíselné proměnné "a" */ plovák b = 6 ; /* Deklarace globální proměnné s plovoucí desetinnou čárkou "b" a přiřazení hodnoty "6" */ int main ( void ) { a = 12 _ /* Přiřazení proměnné "a" hodnoty "12" */ vrátit a + b ; }

Poznámky

  1. Kernighan a Ritchie The C Programming Language – str. 44, 87.
  2. William Wulf a Mary Shaw, "Globální proměnná považována za škodlivá", ACM SIGPLAN Notices, svazek 8, číslo 2, únor 1973, str. 28-34.

Odkazy