Preprocessore C
La preprocessione è una fase di pre-elaborazione del codice sorgente prima della compilazione. Il codice sorgente del programma in linguaggio C viene preparato, prima di essere inviato al compilatore.
Le direttive di preprocessione
Il programmatore può indicare al preprocessore di eseguire alcuni comandi, dette direttive di preprocessione, inserendole all'inizio del codice sorgente.
Nel linguaggio C le direttive di preprocessione cominciano con il simbolo #.
#direttiva
Le direttive devono essere inserite prima del blocco principale main() e di qualsiasi altra funzione o subroutine, perché devono essere elaborate prima del programma.
#direttiva
int main() {
...
}
Un esempio pratico
La prima istruzione del seguente codice sorgente è la direttiva di preprocessione #include.
E' inserita prima del blocco principale (main) del programma.
#include <stdio.h>
int main() {
printf(" Hello World! ");
return 0;
}
La direttiva #include carica in memoria l'intestazione stdio.h, ossia l'header ( libreria ) contenente le funzioni e i comandi standard di input/output del linguaggio C.
Nella libreria stdio.h c'è anche l'istruzione printf.
Nota. Se non ci fosse la direttiva #include <stdio.h> all'inizio del codice sorgente, il programma non potrebbe riconoscere l'istruzione printf e la compilazione del codice sorgente andrebbe in errore.
Elenco delle direttive di preprocessione
Le principali direttive del preprocessore C sono le seguenti:
- #include. Carica le librerie o header file.
- #define. Definisce i simboli e le macro.
- #if else endif. La struttura condizionale nella preprocessione.
- #if elif endif. La struttura condizionale a più condizioni nella preprocessione.
- #ifdef. Verifica se un simbolo è definito.
- #ifndef. Verifica se un simbolo non è definito.
- #line. Forza l'esecuzione di un numero di riga del codice sorgente.
- #error. Visualizza un messaggio di errore personalizzato.
- #pragma. Invia un'indicazione o un parametro al compilatore.
- #undef. Annulla una definizione di simboli o macro.