Identificatori di classi di archiviazione statici
Gli identificatori della classe di archiviazione statica, static e extern, possono essere applicati agli oggetti e alle funzioni. Nella tabella seguente viene illustrato dove possono e non possono essere utilizzate le parole chiave static e extern.
Utilizzo di static ed extern
Costrutto |
Può essere utilizzato static? |
Può essere utilizzato static? |
---|---|---|
Dichiarazioni di funzione all'interno di un blocco |
No |
Sì |
Argomenti formali di una funzione |
No |
No |
Oggetti in un blocco |
Sì |
Sì |
Oggetti all'esterno di un blocco |
Sì |
Sì |
Funzioni |
Sì |
Sì |
Funzioni membro di classe |
Sì |
No |
Dati membro di classe |
Sì |
No |
Nomi typedef |
No |
No |
Un nome specificato utilizzando la parola chiave static dispone di un collegamento interno ad eccezione dei membri statici di una classe con collegamento esterno. Ovvero, non è visibile all'esterno dell'unità di conversione corrente. Un nome specificato mediante la parola chiave extern dispone di collegamento esterno a meno che non precedentemente definito come dotato di collegamento interno. Per ulteriori informazioni sulla visibilità dei nomi, vedere Ambito e Programma e collegamento.
Nota
Alle funzioni dichiarate come inline e che non sono funzioni membro di classe vengono fornite le stesse caratteristiche di collegamento delle funzioni dichiarate come static.
Un nome classe con una dichiarazione non ancora rilevata dal compilatore può essere utilizzato in una dichiarazione extern. Il nome introdotto con tale dichiarazione non può essere utilizzato fino al raggiungimento della dichiarazione di classe.