Identificatori in Linguaggio C
Un identificatore in linguaggio C è un'etichetta o nome simbolico che lo sviluppatore può assegnare a variabili, costanti, funzioni e così via. Gli identificatori sono utilizzati per identificare e accedere a queste entità all'interno di un programma.
In questa lezione ci concentreremo su quali regole seguire per la creazione di identificatori in linguaggio C e su quali parole chiave evitare di utilizzare come identificatori.
Identificatori
Quando realizziamo programmi in linguaggio C, spesso ci troviamo a dover assegnare dei nomi a variabili, costanti, funzioni e così via. Questi nomi sono chiamati identificatori.
In linguaggio C, un identificatore può contenere lettere, numeri e il carattere di sottolineatura o underscore _
. La regola fondamentale, tuttavia, è che un identificatore non può iniziare con un numero.
Ecco alcuni esempi di identificatori validi:
numero
numero1
numero_1
_valore_
Ecco invece alcuni esempi di identificatori non validi:
1numero
valore!
10_volte
prossimo-elemento
In questi casi abbiamo che:
1numero
inizia con un numero;valore!
contiene un carattere non valido;10_volte
inizia con un numero;prossimo-elemento
contiene un carattere non valido.
Identificatori in Linguaggio C
In linguaggio C, un identificatore è un nome che viene assegnato a variabili, costanti, funzioni e così via.
Un identificatore può contenere lettere, numeri e il carattere di sottolineatura _
, ma non può iniziare con un numero.
Un'altra importante caratteristica del linguaggio C è che esso è case-sensitive. Questo significa che le lettere maiuscole e minuscole sono considerate come caratteri distinti.
Per tal motivo gli identificatori seguenti sono considerati come diversi:
numero
Numero
NUMERO
Gli identificatori mostrati sopra sono considerati come tre identificatori distinti, per cui è possibile usarli per scopi diversi. Tuttavia, questa non è una buona pratica di programmazione, in quanto può portare a confusione.
Il linguaggio C è case-sensitive
Il linguaggio C è case-sensitive, per cui le lettere maiuscole e minuscole sono considerate come caratteri distinti.
Bisogna prestare attenzione a non usare identificatori simili con differenze solo di maiuscole e minuscole, in quanto ciò può portare a confusione e ad errori di programmazione.
Per il motivo esposto sopra, gli sviluppatori C preferiscono adottare delle convenzioni di scrittura del codice. Non si tratta di regole imposte dal linguaggio, ma piuttosto di linee guida che aiutano a rendere il codice più leggibile e manutenibile.
Ad esempio, per nominare le variabili si tende ad utilizzare lettere sempre minuscole, separate da un carattere di sottolineatura _
in caso di nomi composti. Per esempio:
numero_elementi
valore_massimo
numero_cicli
Questo stile di assegnamento di nomi prende il nome di snake_case.
Altri sviluppatori, invece, preferiscono utilizzare la cosiddetta notazione camelCase. In questo caso, la prima lettera di ogni parola, tranne la prima, è scritta in maiuscolo. Ad esempio:
numeroElementi
valoreMassimo
numeroCicli
Non esiste uno stile corretto. La scelta dipende dal programmatore e dalle linee guida adottate dal team di sviluppo. L'importante è mantenere uno stile uniforme all'interno del progetto.
Lo standard del linguaggio C non impone un limite massimo sulla lunghezza dei nomi degli identificatori. Di solito, il limite è imposto dallo specifico compilatore utilizzato. In ogni caso è sempre buona norma usare nomi il più possibile descrittivi, in modo da rendere il codice più chiaro e leggibile.
Ad esempio, l'identificatore numeroElementi
è più chiaro e descrittivo rispetto a n
.
Lunghezza degli Identificatori in Linguaggio C
Il linguaggio C non impone un limite massimo sulla lunghezza degli identificatori.
Tuttavia, è sempre buona norma usare nomi il più possibile descrittivi, in modo da rendere il codice più chiaro e leggibile.
Parole Chiave
In linguaggio C, alcuni identificatori hanno un significato speciale per i compilatori e non possono essere utilizzati come nomi di variabili, costanti o funzioni. Questi identificatori sono chiamati parole chiave o keyword e sono considerati riservati.
Di seguito è riportata la tabella delle parole chiave del linguaggio C. Non è importante ora memorizzarle tutte, ma è utile conoscerle per evitare di utilizzarle come nomi di variabili, costanti o funzioni.
Man mano che proseguiremo nello studio del linguaggio C, vedremo come utilizzare queste parole chiave in modo appropriato.
Parola Chiave | Descrizione |
---|---|
auto |
Definisce una variabile locale |
break |
Esce da un ciclo o da uno switch |
case |
Etichetta per uno switch |
char |
Definisce un carattere |
const |
Definisce una costante |
continue |
Salta alla prossima iterazione di un ciclo |
default |
Etichetta di default per uno switch |
do |
Inizia un ciclo do-while |
double |
Definisce un numero a virgola mobile |
else |
Parte di un'istruzione if-else |
enum |
Definisce un tipo enumerato |
extern |
Definisce una variabile esterna |
float |
Definisce un numero a virgola mobile |
for |
Inizia un ciclo for |
goto |
Salta a una posizione specifica nel codice |
if |
Inizia un'istruzione if |
inline |
Specifica una funzione inline in C99 |
int |
Definisce un intero |
long |
Definisce un intero lungo |
register |
Definisce una variabile su un registro |
restrict |
Specifica che un puntatore è ristretto in C99 |
return |
Restituisce un valore da una funzione |
short |
Definisce un intero breve |
signed |
Definisce un intero con segno |
sizeof |
Restituisce la dimensione di un tipo |
static |
Definisce una variabile statica |
struct |
Definisce una struttura |
switch |
Inizia un'istruzione switch |
typedef |
Definisce un tipo di dati |
union |
Definisce un'unione |
unsigned |
Definisce un intero senza segno |
void |
Definisce un tipo vuoto |
volatile |
Specifica che una variabile può essere modificata da un processo esterno |
while |
Inizia un ciclo while |
_Bool |
Definisce un tipo booleano in C99 |
_Complex |
Definisce un tipo complesso in C99 |
_Imaginary |
Definisce un tipo immaginario in C99 |
Parole Chiave in Linguaggio C
Le parole chiave sono identificatori riservati che hanno un significato speciale per i compilatori e non possono essere utilizzati come nomi di variabili, costanti o funzioni.
Dal momento che il linguaggio C è case-sensitive, le parole chiave devono essere utilizzate esattamente come mostrato nella tabella. Ad esempio, if
è una parola chiave, mentre IF
o If
non lo sono.
Evitare di usare identificatori simili alle parole chiave
Un consiglio molto importante è quello di evitare, nello sviluppo dei programmi, di adoperare come identificatori nomi simili alle parole chiave ma con lettere maiuscole o minuscole diverse.
Ad esempio, evitare di utilizzare WHILE
o If
come identificatori, in quanto potrebbero creare confusione con le parole chiave while
e if
.
In Sintesi
In questa lezione abbiamo approfondito il concetto di identificatori in linguaggio C. Gli identificatori sono nomi che vengono assegnati a variabili, costanti, funzioni e così via.
Abbiamo visto che un identificatore può contenere lettere, numeri e il carattere di sottolineatura _
, ma non può iniziare con un numero. Inoltre, il linguaggio C è case-sensitive, per cui le lettere maiuscole e minuscole sono considerate come caratteri distinti.
Infine, abbiamo presentato le parole chiave del linguaggio C, che sono identificatori riservati con un significato speciale per i compilatori. È importante evitare di utilizzarle come nomi di variabili, costanti o funzioni.
In generale, è buona norma adottare uno stile uniforme nella scrittura degli identificatori, in modo da rendere il codice più leggibile e manutenibile.