Share via


Ambito e visibilità

La "visibilità" di un identificatore determina le parti del programma a cui può fare riferimento, ovvero il relativo "ambito". Un identificatore è visibile (ad esempio, può essere usato) solo in parti di un programma incluso nel relativo "ambito", che può essere limitato (in ordine di maggiore restrittività) al file, alla funzione, al blocco o al prototipo di funzione in cui viene visualizzato. L'ambito di un identificatore corrisponde alla parte di programma in cui è possibile utilizzare il nome. Questo è talvolta definito "ambito lessicale". Esistono quattro tipi di ambito: funzione, file, blocco e prototipo di funzione.

L'ambito di tutti gli identificatori, ad eccezione delle etichette, viene determinato dal livello in cui si verifica la dichiarazione. La visibilità degli identificatori all'interno dei programmi viene determinata dalle seguenti regole, specifiche per ogni tipologia:

Ambito di tipo file
Il dichiaratore, o identificatore di tipo, di un identificatore con ambito file appare all'esterno di qualunque blocco o elenco di parametri ed è accessibile da qualsiasi posizione nell'unità di conversione successivamente alla relativa dichiarazione. I nomi degli identificatori con ambito file sono spesso denominati "global" o "external". L'ambito di un identificatore globale inizia al punto della relativa definizione o dichiarazione e termina alla fine dell'unità di conversione.

Ambito di tipo funzione
L'etichetta è l'unico tipo di identificatore dotato di un ambito di tipo funzione. L'etichetta viene dichiarata implicitamente quando viene utilizzata in un'istruzione. I nomi delle etichette devono essere univoci all'interno di una funzione. Per altre informazioni sulle etichette e sui nomi di queste, vedere Istruzioni goto e con etichetta.

Ambito del blocco
Il dichiaratore, o identificatore di tipo, di un identificatore con ambito blocco viene visualizzato all'interno di un blocco o nell'elenco delle dichiarazioni di parametro formale in una definizione di funzione. È visibile solo dal punto della relativa dichiarazione o definizione alla fine del blocco che contiene la stessa dichiarazione o definizione. Il suo ambito è limitato a tale blocco e a tutti i blocchi annidati nello stesso e termina alla parentesi graffa di chiusura del blocco associato. Questo tipo di identificatori sono talvolta denominati "variabili locali."

Ambito di tipo prototipo di funzione
Il dichiaratore, o identificatore di tipo, di un identificatore con ambito di tipo prototipo di funzione viene visualizzato nell'elenco delle dichiarazioni di parametro presente in un prototipo di funzione, che non fa parte della dichiarazione di funzione. Il suo ambito termina alla fine del dichiaratore di funzione.

Le dichiarazioni appropriate per rendere le variabili visibili in altri file di origine sono descritte in Classi di archiviazione. Tuttavia, le variabili e le funzioni dichiarate a livello esterno con l'identificatore static della classe di archiviazione sono visibili solo all'interno del file di origine in cui sono definite. Tutte le altre funzioni sono visibili a livello globale.

Vedi anche

Durata, ambito, visibilità e collegamento