Concetti Chiave
- Il riutilizzo degli identificatori in C è regolato dallo namespace e dallo scope, vietando lo stesso identificatore nello stesso namespace e scope.
- È possibile usare lo stesso identificatore in scope diversi, dove quello interno maschera l'identificatore esterno dichiarato.
- Lo namespace in C comprende diverse classi, come tag di struct, union, enum, e identificatori di variabili e funzioni.
- Le classi di visibilità degli identificatori in C sono: a livello di file, a livello di funzione, a livello di prototipo di funzione e a livello di blocco.
- Le label sono l'unico tipo di identificatore con visibilità a livello di funzione nel linguaggio C.
Regole di riutilizzo degli identificatori
Le regole che ci consentono di riusare un identificatore in un programma dipendono dallo namespace e dallo scope degli identificatori. Infatti secondo le regole utilizzate nel linguaggio di programmazione del C:
- Non si riusa lo stesso identificatore nello stesso namespace e scope
- Nello stesso scope, si può usare lo stesso identificatore se questo e usato in namespace diversi
- In scope diversi, si può usare lo stesso identificatore dichiarato in qualche scope pià esterno, quello più interno maschera localmente quello esterno
Namespace nel linguaggio C
Lo Namespace (spazio dei nomi) è l’insieme di classi in cui sono suddivisi i tipi di identificatore, in C le classi di namespace sono:
- tag di struct, union e enum
- campi di struct e union, in cui ognuno ha un namespace diverso
- label per il goto
- identificatori di variabili, funzioni, costanti enumerative e tipi
- (macro e argomenti delle macro)
Visibilità degli identificatori
Un identificatore, come le variabili e visibile nella regione di programma in cui dichiarato, ci sono quindi quattro classi di visibilità, ovvero la parte di codice in cui è valido il riferimento tra nome della variabile e indirizzo di memoria
- A livello di file
- A livello di funzione (le label sono gli unici con visibilita a livello di funzione)
- A livello di prototipo di funzione
- A livello di blocco
Domande da interrogazione
- Quali sono le regole fondamentali per il riutilizzo degli identificatori nel linguaggio C?
- Che cos'è uno namespace nel linguaggio C e quali sono le sue classi?
- Quali sono le classi di visibilità degli identificatori nel linguaggio C?
Le regole per il riutilizzo degli identificatori nel C dipendono dallo namespace e dallo scope. Non si può riutilizzare lo stesso identificatore nello stesso namespace e scope, ma è possibile farlo in namespace diversi all'interno dello stesso scope e in scope diversi, dove l'identificatore più interno maschera quello esterno.
Lo namespace è l'insieme di classi in cui sono suddivisi i tipi di identificatore nel C. Le classi di namespace includono tag di struct, union e enum, campi di struct e union, label per il goto, identificatori di variabili, funzioni, costanti enumerative e tipi, oltre a macro e argomenti delle macro.
Le classi di visibilità degli identificatori nel C comprendono: a livello di file, a livello di funzione (solo per le label), a livello di prototipo di funzione e a livello di blocco, determinando così dove un identificatore è valido nel codice.