En global variabel i programmering är en variabel vars omfattning är hela programmet, såvida den inte åsidosätts . Mekanismer för att interagera med globala variabler kallas mekanismer för att komma åt den globala miljön eller staten ( global miljö , global stat ) . Globala variabler kan användas för interaktion mellan procedurer och funktioner som ett alternativ till att skicka argument och returnera värden [1] .
Användningen av globala variabler har nackdelar: en global variabel kan ändras när som helst i programmet (om den inte finns i skyddat minne eller deklareras som en skrivskyddad variabel ), vilket kan påverka funktionen för andra delar av programmet programmet [2] . Av denna anledning har globala variabler obegränsad potential för att skapa ömsesidiga beroenden, vilket leder till programkomplexitet. I vissa fall är det dock användbart att använda globala variabler. Till exempel kan de användas för att undvika att behöva skicka ofta använda variabler genom flera funktioner. Globala variabler gör det också svårt att integrera moduler eftersom kod skriven tidigare kan innehålla globala variabler med samma namn som i den inbäddningsbara modulen.
Globala variabler används ofta för att skicka data mellan kodsektioner som inte deltar i anropsrelationer, såsom parallella exekveringstrådar eller signalhanterare . Utan korrekt låsning (till exempel med en mutex ) kommer kod som använder globala variabler inte att vara trådsäker , förutom skrivskyddade variabler i ett skyddat minnesområde . Med en ökning av antalet variabler och följaktligen låsningar ökar sannolikheten för dödlägen .
Exempel i C :
int a ; /* Deklarera en global heltalsvariabel "a" */ float b = 6 ; /* Deklarera en global flyttalsvariabel "b" och tilldela värdet "6" till den */ int main ( void ) { a = 12 _ /* Tilldela variabeln "a" värdet "12" */ returnera a + b ; }