Direttive per il precompilatore
Le direttive sono istruzioni utilizzate per semplificare la scrittura del codice che iniziano per il carattere cancelletto #
e sono seguite da parole chiave riconosciute dal precompilatore. Il precompilatore, prima dell'inizio della compilazione, esegue due passi fondamentali:
- elimina i commenti dal codice
- espande le direttive inserite
in questo modo in fase di compilazione comparirà solo il codice del nostro programma con le sostituzioni adeguate per le direttive inserite.
#include
La direttiva di #include
permette di inserire nel codice le librerie, sia che si tratti di librerie standard, sia che si tratti di librerie definite dal programmatore. La sintassi è la seguente:
oppure può essere anche:
nel caso in cui il file di libreria si trovi nella stessa cartella del sorgente. La libreria più utilizzata in C è stdio che permette di accedere a tutte le funzioni che comandano l'input e l'output del programma, tipo printf
e scanf_s
. Si include con:
Esistono anche altre librerie molto utili, come ad esempio:
stdlib.h
: per operazioni come allocazione della memoria dinamica, estrazione di numeri pseudo-casuali, conversione di interi in caratteri e viceversa e l'invio di comandi al processore;math.h
: per operazioni matematiche non elementari, come seno, coseno, tangente, arcoseno, arcocoseno, arcotangente, potenza, radice quadrata, approssimazione all'interno inferiore o superiore, logaritmo, esponenziale;ctype.h
: per la manipolazione di caratteri, come conversione al minuscolo o al maiuscolo e funzioni per il test per verificare se si tratta di un carattere alfabetico, alfanumerico, minuscolo, maiuscolo, numerico;time.h
: per ottenere una rappresentazione del tempo di sistema o corrente o fare la differenza tra due tempi differenti;string.h
: per la manipolazione di stringhe come concatenamento, comparazione, copia, estrazione della lunghezza;
Quando il precompilatore incontra una direttiva #include
la sostituisce con il codice della libreria specificata per intero.
#define
Questa direttiva permette di definire le cosiddette costanti, ovvero dei simboli a cui è associato un valore che non cambia durante l'esecuzione del programma. Ad esempio, per approssimare il pi greco a 3.14 possiamo inserire una costante:
che poi andiamo ad utilizzare in una formula come il calcolo del permietro di una circonferenza dato il raggio:
oppure, per dire che in un anno ci sono 365 giorni (comunemente scritti come gg) possiamo dire:
Da notare che in enrambi i casi si è usato il carattere MAIUSCOLO per distinguere le costanti dalle variabili.
Un'altro uso della #define
può essere la definizione di macro, ovvero delle piccole funzioni. Ad esempio per calcolare il perimetro del quadrato dato il lato:
in modo che quando dobbiamo calcolare il perimetro possiamo direttamente chiamare quella macro:
Il precompilatore si occuperà di sostituire nel codice il nome delle costanti che abbiamo definito con il loro valore e i nomi delle macro con le funzioni che definiscono.
Anche all'interno di librerie di sistema ci possono essere costanti e/o macro già definite come il valore del pi greco che è definito con la costante M_PI
nella libreria math.h
.