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
   434   435   436   437   438   439   440   441   442   443   444