Differenza tra variabile locale e globale
Differenze chiave tra variabile locale e variabile globale
- La variabile locale viene dichiarata all'interno di una funzione, mentre la variabile globale viene dichiarata all'esterno della funzione.
- Le variabili locali vengono create quando la funzione ha iniziato l'esecuzione e vengono perse quando la funzione termina, d'altra parte, una variabile globale viene creata all'avvio dell'esecuzione e viene persa quando il programma termina.
- La variabile locale non fornisce la condivisione dei dati, mentre la variabile globale fornisce la condivisione dei dati.
- Le variabili locali vengono archiviate nello stack, mentre la variabile globale viene archiviata in una posizione fissa decisa dal compilatore.
- Il passaggio dei parametri è richiesto per le variabili locali, mentre non è necessario per una variabile globale
Cos'è una variabile?
La variabile è un nome assegnato a un'area di archiviazione che il programma può manipolare. Un tipo di variabile determina la dimensione e il layout della memoria della variabile.
Determina inoltre l'intervallo di valori che devono essere archiviati all'interno di quella memoria e la natura delle operazioni che possono essere applicate a quella variabile.
Ambito delle variabili
L'ambito della variabile è semplicemente la durata di una variabile. È un blocco di codice in cui una variabile è applicabile o attiva. Per esempio:
function foo(){ var x; }
Dichiari una variabile "x" all'interno di una funzione "foo". L'ambito di quella variabile rimane all'interno di quella funzione e non può essere utilizzato al di fuori di quella funzione.
Ci sono tre posti in cui è possibile dichiarare le variabili nel linguaggio di programmazione:
- All'interno di una funzione o di un blocco: variabili locali
- Al di fuori di tutte le funzioni: variabili globali
- Nella definizione dei parametri di funzione: Parametri formali
Variabile locale
Variabile locale è definito come un tipo di variabile dichiarata all'interno del blocco di programmazione o delle subroutine. Può essere utilizzato solo all'interno della subroutine o del blocco di codice in cui è dichiarato. La variabile locale esiste finché il blocco della funzione è in esecuzione. Successivamente, verrà distrutto automaticamente.
Esempio di variabile locale
public int add(){ int a =4; int b=5; return a+b; }
Qui, "a" e "b" sono variabili locali
Variabile globale
A Variabile globale nel programma è una variabile definita all'esterno della subroutine o della funzione. Ha una portata globale, il che significa che mantiene il suo valore per tutta la durata del programma. Pertanto, è possibile accedervi in tutto il programma da qualsiasi funzione definita all'interno del programma, a meno che non sia oscurata.
Esempio:
int a =4; int b=5; public int add(){ return a+b; }
Qui, "a" e "b" sono variabili globali.
Variabile locale e variabile globale
Ecco alcune differenze fondamentali tra le variabili locali e globali.
Parametro | Local | Global |
---|---|---|
Obbiettivo | Viene dichiarato all'interno di una funzione. | Viene dichiarato all'esterno della funzione. |
Valore | Se non è inizializzato, viene archiviato un valore spazzatura | Se non è inizializzato, lo zero viene memorizzato come predefinito. |
Per sempre. | Viene creato quando la funzione inizia l'esecuzione e viene perso quando le funzioni terminano. | Viene creato prima dell'inizio dell'esecuzione globale del programma e viene perso quando il programma termina. |
La condivisione dei dati | La condivisione dei dati non è possibile poiché è possibile accedere ai dati della variabile locale solo da una funzione. | La condivisione dei dati è possibile poiché più funzioni possono accedere alla stessa variabile globale. |
Scheda Sintetica | Il passaggio dei parametri è necessario affinché le variabili locali accedano al valore in un'altra funzione | Il passaggio dei parametri non è necessario per una variabile globale poiché è visibile in tutto il programma |
Modifica del valore della variabile | Quando il valore della variabile locale viene modificato in una funzione, le modifiche non sono visibili in un'altra funzione. | Quando il valore della variabile globale viene modificato in una funzione, i cambiamenti sono visibili nel resto del programma. |
Accesso da | È possibile accedere alle variabili locali con l'aiuto di istruzioni, all'interno di una funzione in cui sono dichiarate. | È possibile accedere alle variabili globali tramite qualsiasi istruzione nel programma. |
Memoria | Viene archiviato nello stack se non diversamente specificato. | È memorizzato in una posizione fissa decisa dal compilatore. |
Vantaggi dell'utilizzo delle variabili globali
- È possibile accedere alla variabile globale da tutte le funzioni o moduli di un programma
- Devi solo dichiarare una variabile globale una volta al di fuori dei moduli.
- È idealmente utilizzato per conservare le "costanti" poiché ti aiuta a mantenere la consistenza.
- Una variabile globale è utile quando più funzioni accedono agli stessi dati.
Vantaggi dell'utilizzo delle variabili locali
- L'uso di variabili locali offre la garanzia che i valori delle variabili rimarranno intatti durante l'esecuzione dell'attività
- Se più task modificano una singola variabile che è in esecuzione contemporaneamente, il risultato potrebbe essere imprevedibile. Ma dichiararla come variabile locale risolve questo problema, poiché ogni task creerà la propria istanza della variabile locale.
- È possibile assegnare alle variabili locali lo stesso nome in funzioni diverse perché vengono riconosciute solo dalla funzione in cui sono dichiarate.
- Le variabili locali vengono cancellate non appena una funzione termina e liberano lo spazio di memoria che occupa.
Svantaggi dell'utilizzo delle variabili globali
- Troppe variabili dichiarate come globali, rimangono in memoria fino al completamento dell'esecuzione del programma. Ciò può causare un problema di memoria insufficiente.
- I dati possono essere modificati da qualsiasi funzione. Qualsiasi istruzione scritta nel programma può modificare il valore della variabile globale. Ciò potrebbe dare risultati imprevedibili in ambienti multitasking.
- Se le variabili globali vengono interrotte a causa del refactoring del codice, sarà necessario modificare tutti i moduli in cui vengono chiamate.
Svantaggi dell'utilizzo delle variabili locali
- Il processo di debug di una variabile locale è piuttosto complicato.
- I dati comuni devono essere trasmessi ripetutamente poiché la condivisione dei dati non è possibile tra i moduli.
- Hanno una portata molto limitata.
Cosa è più utile?
La variabile locale e globale sono ugualmente importanti durante la scrittura di un programma in qualsiasi lingua. Tuttavia, un gran numero di variabili globali può occupare una memoria enorme. È diventato difficile identificare un cambiamento indesiderato delle variabili globali. Pertanto è consigliabile evitare di dichiarare variabili globali indesiderate.