Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capitolo 11<br />
Il preprocessore<br />
Il preprocessore è un processore di testi che elabora il contenuto di un file sorgente prima<br />
della compilazione vera e propria.<br />
Il preprocessore è un programma che o<strong>per</strong>a sostituzioni tipografiche sul codice sorgente prima<br />
che tale codice venga visto dal compilatore vero e proprio.<br />
Anche se il preprocesso è un’o<strong>per</strong>azione formalmente distinta d<strong>alla</strong> compilazione, il preprocessore<br />
fa parte del compilatore e delle specifiche del linguaggio; ogni sorgente C viene<br />
preprocessato.<br />
Tutte le righe nel codice sorgente che iniziano con il carattere ’#’ (diesis, cancelletto, hash)<br />
sono direttive <strong>per</strong> il preprocessore. Tali direttive <strong>per</strong>mettono, tra le altre cose di:<br />
• includere (fisicamente) altri file all’interno del proprio sorgente;<br />
• ridefinire il significato degli identificatori, tramite sostituzione puramente tipografica nel<br />
codice sorgente;<br />
• disabilitare condizionalmente parti di codice in fase di compilazione, eliminando fisicamente<br />
il testo prima che il compilatore lo veda.<br />
NOTA Come si intuisce, il preprocessore è uno strumento potente ma molto <strong>per</strong>icoloso;<br />
<strong>per</strong> esempio, il compilatore non può effettuare il controllo degli errori<br />
sulle parti di codice disabilitate.<br />
Le modifiche apportate al file sorgente riguardano soprattutto:<br />
• l’eliminazione dei commenti<br />
• l’inclusione dei file<br />
• la sostituzione di costanti simboliche e macro<br />
Il preprocessore viene principalmente usato <strong>per</strong> includere altri file e definire nomi simbolici <strong>per</strong><br />
riferirsi a dati numerici. L’inclusione dei file di header serve a poter accedere ai prototipi delle<br />
funzioni, alle dichiarazioni delle strutture dati e delle variabili globali definite esternamente al<br />
proprio programma. Normalmente la documentazione di una funzione di libreria specifica quale<br />
header occorre includere <strong>per</strong> passare al compilatore le informazioni necessarie.<br />
109