En global variabel i programmering er en variabel, hvis omfang er hele programmet, medmindre den er tilsidesat . Mekanismer til at interagere med globale variabler kaldes mekanismer til adgang til det globale miljø eller tilstand ( globalt miljø , global tilstand ) . Globale variabler kan bruges til interaktion mellem procedurer og funktioner som et alternativ til at sende argumenter og returnere værdier [1] .
Brugen af globale variable har ulemper: en global variabel kan ændres på et hvilket som helst tidspunkt i programmet (hvis den ikke er i beskyttet hukommelse eller erklæret som en skrivebeskyttet variabel ), hvilket kan påvirke driften af andre dele af programmet [2] . Af denne grund har globale variabler ubegrænset potentiale for at skabe gensidige afhængigheder, hvilket fører til programkompleksitet. I nogle tilfælde er det dog nyttigt at bruge globale variabler. For eksempel kan de bruges til at undgå at skulle sende hyppigt anvendte variable gennem flere funktioner. Globale variabler gør det også vanskeligt at integrere moduler, fordi kode skrevet tidligere kan indeholde globale variabler med de samme navne som i det indlejrede modul.
Globale variabler bruges i vid udstrækning til at overføre data mellem kodesektioner, der ikke deltager i opkaldsrelationer, såsom parallelle udførelsestråde eller signalbehandlere . Uden korrekt låsning (for eksempel med en mutex ) vil kode, der bruger globale variabler, ikke være trådsikker , undtagen for skrivebeskyttede variabler i et beskyttet hukommelsesområde . Med en stigning i antallet af variabler og følgelig låse stiger sandsynligheden for deadlocks .
Eksempel i C :
int a ; /* Erklæring af en global heltalsvariabel "a" */ float b = 6 ; /* Erklære en global variabel "b" med flydende komma og tildele værdien "6" til den */ int main ( ugyldig ) { a = 12 _ /* At tildele variablen "a" værdien "12" */ returnere a + b ; }