Differenza tra variabile locale e globale

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 14 Maggio 2024
Anonim
Scopriamo la differenza tra variabili Locali e Globali - Arduino Facile
Video: Scopriamo la differenza tra variabili Locali e Globali - Arduino Facile

Contenuto


Come discusso in precedenza, una variabile è un nome, assegnato a una posizione di memoria, e deve essere dichiarata prima di essere utilizzata. In C, tutte le variabili sono dichiarate all'inizio del programma. In C ++, le variabili possono essere dichiarate, in qualsiasi momento, prima di essere utilizzate nelle istruzioni.

Le variabili sono classificate in variabili "locali" e "globali", che è l'argomento principale della nostra discussione. Qui la principale differenza tra la variabile locale e quella globale è che una variabile locale viene dichiarata all'interno di un blocco funzione. Al contrario, la variabile globale viene dichiarata al di fuori delle funzioni nel programma.

Studiamo alcune differenze tra una variabile locale e una globale insieme a un grafico di confronto.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. vantaggi
  5. svantaggi
  6. Conclusione

Tabella di comparazione:

BASE PER IL CONFRONTO VARIABILE LOCALE VARIABILE GLOBALE
Dichiarazione Le variabili sono dichiarate all'interno di una funzione.
Le variabili sono dichiarate al di fuori di qualsiasi funzione.
Scopo
All'interno di una funzione, all'interno della quale sono dichiarati.Durante tutto il programma.
Valore
La variabile locale non inizializzata provoca l'archiviazione del valore di immondizia.La variabile globale non inizializzata memorizza zero per impostazione predefinita.
Accesso Accessibile solo dalle dichiarazioni, all'interno di una funzione in cui sono dichiarate. Accessibile da qualsiasi istruzione nell'intero programma.
Condivisione dei datiNon fornitoagevolato
VitaCreato quando il blocco funzione viene inserito e distrutto all'uscita. Rimanere in vigore per tutto il tempo in cui il programma è in esecuzione.
Conservazione
Le variabili locali vengono archiviate nello stack se non diversamente specificato.
Memorizzato in una posizione fissa decisa da un compilatore.
Passaggio dei parametriNecessariamente necessarioNon richiesto per le variabili globali.
Cambiamenti in un valore variabileQualsiasi modifica implicita in una variabile locale non influisce sulle altre funzioni del programma.Le modifiche applicate nella variabile globale di una funzione riflettono le modifiche nell'intero programma.

Definizione di variabile locale

UN variabile locale viene sempre dichiarato all'interno di un blocco funzione. In C, una variabile locale viene dichiarata all'inizio di un blocco di codice. In C ++, possono essere dichiarati ovunque nel blocco di codice prima del loro utilizzo. Le variabili locali sono accessibili solo dalle istruzioni scritte all'interno di una funzione in cui sono dichiarate le variabili locali. Sono sicuri nel senso che non sono accessibili da nessuna altra funzione dello stesso programma.


La variabile locale esiste fino a quando il blocco della funzione è in esecuzione, e quindi distrutto dopo che l'esecuzione ha terminato il blocco. Le variabili locali perdono il loro contenuto non appena l'esecuzione lascia il blocco in cui vengono dichiarate.

Il motivo è che le variabili locali vengono archiviate nello stack a meno che non venga specificato il loro archivio speciale. Lo stack è di natura dinamica e il cambiamento nella posizione della memoria porta al motivo per cui la variabile locale non mantiene il suo valore non appena esiste il blocco di una funzione.

Nota:
Tuttavia, esiste un modo per conservare il valore di una variabile locale utilizzando il modificatore "statico".

Definizione di variabile globale

UN variabile globale è dichiarato al di fuori di tutte le funzioni presenti in un programma. A differenza delle variabili locali, è possibile accedere alla variabile globale da qualsiasi funzione presente in un programma. Le variabili globali non sono molto affidabili in quanto il loro valore può essere modificato da qualsiasi funzione presente nel programma.


Rimangono in vigore fino a quando l'intero programma non viene eseguito completamente. Le variabili globali mantengono i loro valori fino a quando il programma non è in esecuzione. Il motivo è che sono archiviati in una regione fissa di memoria, decisa dal compilatore.

Una variabile globale è utile in situazioni in cui più funzioni accedono agli stessi dati. L'uso di un gran numero di variabili globali potrebbe essere problematico, poiché potrebbero esserci modifiche indesiderate al valore di una variabile globale.

  1. Le variabili locali sono chiamate "locali" perché sono note solo alle istruzioni scritte in una funzione all'interno della quale sono dichiarate e non note a nessuna altra funzione presente al di fuori di quel blocco funzione. Nel caso di una variabile globale, sono noti a tutte le funzioni presenti in un programma; quindi, sono chiamati "globali".
  2. Le variabili globali mantengono il loro valore fino a quando il programma non si trova nella fase di esecuzione, poiché vengono archiviate in una posizione fissa decisa dal compilatore. Le variabili locali sono memorizzate nello stack; quindi, non mantengono il loro valore poiché lo "stack" è di natura dinamica, ma il compilatore può essere indirizzato a conservare il loro valore, usando il modificatore "statico".
  3. Se una variabile globale e una locale vengono dichiarate con lo stesso nome, tutte le istruzioni di un blocco di codice in cui viene dichiarata la variabile locale si riferiranno solo a una variabile locale e non causeranno alcun effetto su una variabile globale.
  4. Una variabile locale viene distrutta quando il controllo del programma esce dal blocco in cui viene dichiarata la variabile locale. Tuttavia, una variabile globale viene distrutta al termine dell'intero programma.

vantaggi

Variabile locale

  • Il vantaggio principale di una variabile locale è che non vi è alcuna alterazione accidentale dei dati. La variabile viene dichiarata all'interno di un blocco e questi blocchi di codice usano la variabile ed evitano effetti collaterali indesiderati.
  • La variabile locale consuma memoria per un periodo limitato del periodo, solo quando viene eseguito il blocco contenente la variabile.

Variabile globale

  • Le variabili globali sono molto utili quando si hanno a che fare con diverse funzioni del programma che manipolano gli stessi dati.
  • I cambiamenti che dovevano essere applicati nell'intero programma sarebbero stati più facili implementando una variabile globale.
  • Possiamo accedere da qualsiasi luogo o tramite qualsiasi funzione casuale del programma.

svantaggi

Variabile locale

  • L'ambito della variabile locale è limitato.
  • Vieta la condivisione dei dati.
  • Non sono in grado di conservare i dati tra le chiamate perché le variabili locali vengono generate e rimosse con ogni voce e uscita dal blocco. Tuttavia, il modificatore statico può essere utilizzato per conservare i valori.

Variabile globale

  • L'uso di un gran numero di variabili globali potrebbe comportare la generazione di errori del programma.
  • Il problema principale che provoca è il verificarsi accidentale dei cambiamenti dovuti alle variabili globali diffuse nel corso del programma.
  • Potrebbe anche sorgere la necessità di eseguire il refactoring del codice, che è un processo molto ampio in cui l'intero codice del programma viene ristrutturato.

Conclusione:

Le variabili locali e globali sono entrambe necessarie e ugualmente richieste durante la scrittura del programma. Tuttavia, dichiarare un gran numero di variabili globali potrebbe essere problematico in un programma enorme, poiché potrebbe causare modifiche indesiderate a una variabile globale; e sarebbe difficile identificare ciò che parte di un programma ha fatto quel cambiamento. Quindi, si dovrebbe evitare di dichiarare variabili globali non necessarie.