Concetti Chiave
- Le parole chiave in C sono riservate per funzioni specifiche e non possono essere usate come identificatori.
- Gli identificatori possono contenere lettere, numeri e underscore, ma non possono iniziare con un numero e sono case-sensitive.
- Le costanti letterali sono suddivise in intere, decimali o in virgola mobile, e carattere, con opzioni per specificare basi numeriche e usare sequenze di escape.
- Le stringhe letterali sono sequenze di caratteri racchiuse tra doppi apici e supportano caratteri Unicode.
- I commenti e i segni di punteggiatura completano gli elementi lessicali del linguaggio C.
Regole lessicali del linguaggio C
Le parole valide sono usate per la codifica dei programmi, in C le principali categorie
lessicali o token sono:
- Parole chiave o parole riservate o keywords, che non possono essere utilizzate
come identificatori di variabili o funzioni. Per ISO C89 ci sono 32 keywords:
auto break base char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
- Identificatori, parola composta da caratteri maiuscoli e minuscoli dell’alfabeto, dalle cifre e da _. Regole per nome degli identificatori:
• il primo carattere non può essere una cifra
• non si possono usare le parole chiave
• sono case-sensitive, minuscole e maiuscole sono diverse
• non ci sono limiti specifici per la lunghezza, l’implementazione del compilatore considera significativi almeno i primi 31 caratteri per le variabili automatiche, mentre per i nomi di funzioni e di variabili esterne questo numero può essere anche inferiore, poichè compilatori e assemblatori potrebbero usare nomi esterni su cui non si ha alcun controllo, si garantiscono quindi solo sui primi 6 caratteri Vengono utilizzati per:
• nomi di variabile o funzione
• membro o nome di struct, union ed enum
• nome di tipo (con typedef)
• nome di macro o parametro di macro
- Costanti letterali, che vengono suddivise in:
• Costanti intere, sequenza di cifre ed eventualmente lettere, il primo carattere deve essere una cifra. Può avere segno + o -. Può avere un prefisso che specifica la base: ottale (‘0’), esadecimale (‘0x’ o ‘OX’).
• Costanti decimali o in virgola mobile, numero reale che può essere scritto utilizzando la forma decimale o la notazione scientifica:
[
• Costanti carattere, racchiuse tra apici ‘ ‘.
E possibile utilizzare caratteri speciali non stampabili, dette sequenze o
caratteri di escape:
\a= segnale acustico
\b= battuta indietro
\f= salto pagina
\n= nuova riga
\b= battuta indietro
\r= ritorno a capo della stessa riga
\t= tabulazione orizzontale
\v= tabulazione verticale
\\= \ barra rovesciata
\= ‘ apice singolo
\?= ? punto di domanda
\”= " doppi apici
\0= NULL Carattere nullo o di fine stringa
È possibile rappresentare un simbolo nel set di caratteri della macchina usando \ooo.
- Stringhe letterali o costanti alfanumeriche, sequenza di caratteri compresi tra doppi apici “ “, usando i caratteri disponibili sul calcolatore, in genere i caratteri Unicode
- Commenti
- Segni di punteggiatura e operatori
Domande da interrogazione
- Quali sono le categorie lessicali principali nel linguaggio C?
- Quali sono le regole per la creazione di identificatori in C?
- Come vengono suddivise le costanti letterali in C?
- Qual è la funzione delle sequenze di escape nelle costanti carattere?
Le principali categorie lessicali nel linguaggio C sono parole chiave, identificatori, costanti letterali, stringhe letterali, commenti, segni di punteggiatura e operatori.
Gli identificatori devono iniziare con una lettera o un underscore, non possono essere parole chiave, sono case-sensitive e non hanno limiti specifici di lunghezza, ma i primi 31 caratteri sono significativi per le variabili automatiche.
Le costanti letterali in C sono suddivise in costanti intere, costanti decimali o in virgola mobile, e costanti carattere, che possono includere sequenze di escape per caratteri speciali.
Le sequenze di escape permettono di rappresentare caratteri speciali non stampabili, come il segnale acustico (\a) o la nuova riga (\n), all'interno delle costanti carattere.