Riepilogo di durata e di visibilità
Nella tabella seguente è riportato un riepilogo delle caratteristiche di visibilità e di durata per la maggior parte degli identificatori. Le prime tre colonne forniscono gli attributi che definiscono la durata e la visibilità. Un identificatore con gli attributi forniti nelle prime tre colonne presenta la durata e la visibilità illustrate nella colonne quarta e quinta. Tuttavia, questa tabella non considera tutti i possibili casi. Per altre informazioni, fare riferimento a Classi di archiviazione.
Riepilogo di durata e di visibilità
Attributi: Level |
Elemento | Classe di archiviazione Identificatore |
Risultato: Durata |
Visibilità |
---|---|---|---|---|
Ambito di tipo file | Definizione di variabile | static |
Globale | Resto del file di origine in cui si verifica |
Dichiarazione di variabile | extern |
Globale | Resto del file di origine in cui si verifica | |
Prototipo o definizione di funzione | static |
Globale | File di origine singolo | |
Prototipo di funzione | extern |
Globale | Resto del file di origine | |
Ambito del blocco | Dichiarazione di variabile | extern |
Globale | Blocca |
Definizione di variabile | static |
Globale | Blocca | |
Definizione di variabile | auto o register |
Locale | Blocca |
Esempio
Descrizione
Nell'esempio seguente vengono illustrati i blocchi, l'annidamento e la visibilità di variabili:
Codice
// Lifetime_and_Visibility.c
#include <stdio.h>
int i = 1; // i defined at external level
int main() // main function defined at external level
{
printf_s( "%d\n", i ); // Prints 1 (value of external level i)
{ // Begin first nested block
int i = 2, j = 3; // i and j defined at internal level
printf_s( "%d %d\n", i, j ); // Prints 2, 3
{ // Begin second nested block
int i = 0; // i is redefined
printf_s( "%d %d\n", i, j ); // Prints 0, 3
} // End of second nested block
printf_s( "%d\n", i ); // Prints 2 (outer definition
// restored)
} // End of first nested block
printf_s( "%d\n", i ); // Prints 1 (external level
// definition restored)
return 0;
}
Commenti
In questo esempio, sono disponibili quattro livelli di visibilità: il livello esterno e tre livelli di blocco. I valori vengono visualizzati sullo schermo come indicato nei commenti che seguono ogni istruzione.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per