Sommario:
Definizione - Cosa significa variabile globale?
Una variabile globale è un costrutto del linguaggio di programmazione, un tipo di variabile che viene dichiarato al di fuori di qualsiasi funzione ed è accessibile a tutte le funzioni del programma. Un gruppo di variabili globali viene chiamato stato globale o ambiente globale perché, quando combinati, definiscono vari aspetti di un programma o dell'ambiente durante l'esecuzione del programma. Una variabile globale viene generalmente dichiarata al di sopra di tutte le funzioni e viene ridotta al minimo, poiché tutte le funzioni possono manipolarle durante il tempo di esecuzione del programma, il che è considerato pericoloso dalla maggior parte dei programmatori perché potrebbe essere accidentalmente modificato, causando bug.
Techopedia spiega la variabile globale
Le variabili globali, come suggerisce il nome, sono variabili accessibili a livello globale o ovunque nel programma. Una volta dichiarati, rimangono in memoria per tutto il tempo di esecuzione del programma. Ciò significa che possono essere modificati da qualsiasi funzione in qualsiasi momento e possono influire sul programma nel suo insieme. Durante i primi anni di computer in cui la memoria era molto limitata, venivano considerati cattive pratiche perché occupavano prezioso spazio di memoria ed era molto facile per il programmatore perdere traccia dei propri valori, specialmente in programmi lunghi, portando a bug che possono essere molto difficile da individuare. Il codice sorgente è meglio compreso quando l'ambito dei suoi singoli elementi è limitato, quindi a causa della loro non località, è difficile tenere traccia di dove sono stati modificati o perché sono stati cambiati.
Anche con questo stigma, le variabili globali sono preziose nelle funzioni che non condividono una relazione "chiamante e chiamata", come gestori di segnali e thread simultanei. Con l'eccezione delle variabili globali dichiarate come valori di sola lettura nella memoria protetta, i codici dovrebbero distribuire l'incapsulamento corretto per essere considerati "thread-safe".
Le prime versioni di linguaggi non strutturati come BASIC, COBOL e Fortran utilizzavano solo variabili globali. Comunque linguaggi come Lua, Forth e Perl usano le variabili globali per impostazione predefinita così come la maggior parte degli script di shell.