Page 439 - Informatica dalla A a Z
P. 439
Le direttive del preprocessore rappresentano un linguaggio a sé stante con regole ben de-
finite:
• le direttive iniziano con il simbolo ‘#’;
• le direttive non utilizzano alcun simbolo di conclusione (non si usa il punto e virgola);
• una riga non può contenere più di una direttiva.
- La direttiva ‘#include’ permette di includere un file. È un file di intestazione, conte-
nente una serie di definizioni necessarie al file sorgente in cui vengono incorporate.
Il file può essere indicato delimitandolo con le parentesi angolari (<>), oppure con
gli apici doppi (“”).
Il primo caso, quello standard, fa riferimento a un file che dovrebbe trovarsi in una posi-
zione stabilita dalla configurazione del compilatore (nel caso del C GNU in GNU/Linux, do-
vrebbe trattarsi della directory ‘/usr/include/’); nel secondo si fa riferimento a una posi-
zione precisa, che può richiede l’indicazione di un percorso qualora non si trattasse della
stessa directory in cui si trova il sorgente in questione.
Un file incorporato attraverso la direttiva ‘#include’, può a sua volta includerne altri.
- La direttiva ‘#define’ permette di definire le “macro”, o le “costanti”.
#define SALUTO ciao come stai
Ordina al preprocessore di sostituire tutte le occorrenze di ‘SALUTO’ con ‘ciao come stai’.
Se invece scrivessimo
#define SALUTO “ciao come stai”
la macro ‘SALUTO’ può essere utilizzata in un’istruzione del tipo
printf (SALUTO);
dove stamperebbe “ciao come stai”.
Nota: Per convenzione, i nomi utilizzati per le macro sono espressi solo con lettere maiu-
scole.
Le direttive ‘#if’, ‘#else’, ‘#elif’ e ‘#endif’, permettono di delimitare una porzione di codice
che debba essere utilizzato o ignorato in relazione a una certa espressione che deve essere
calcolata solo attraverso definizioni precedenti.
Le direttive ‘#ifdef’ e ‘#ifndef’ servono per definire l’inclusione o l’esclusione di codice in
base all’esistenza o meno di una macro.
435