Preprocessore e Direttive
Preprocessore e Direttive
#define #include
Il preprocessore in C è una fase che precede la compilazione del codice sorgente. Il preprocessore si occupa di eseguire diverse operazioni, tra cui la sostituzione di macro, l'inclusione di file e la condizionalizzazione del codice. Le direttive del preprocessore iniziano con il simbolo `#`.
Direttive del Preprocessore:
`#define` per le Macro Oggetto (Object-like Macro)
Le macro oggetto vengono definite utilizzando `#define` e possono essere utilizzate per definire costanti o eseguire sostituzioni di testo.
#include <stdio.h>
// Definizione di una macro oggetto
#define PI 3.14159
int main() {
// Utilizzo della macro oggetto
double raggio = 5.0;
double area = PI * raggio * raggio;
printf("L'area del cerchio è: %f\n", area);
return 0;
}
`#define` per le Macro Funzione (Function-like Macro)
Le macro funzione vengono definite utilizzando `#define` seguito da parametri e un blocco di codice. Possono essere utilizzate per creare funzioni-like sostituendo il codice durante la fase di preprocessamento.
#include <stdio.h>
// Definizione di una macro funzione
#define QUADRATO(x) ((x) * (x))
int main() {
// Utilizzo della macro funzione
int risultato = QUADRATO(5);
printf("Il quadrato di 5 è: %d\n", risultato);
return 0;
}
L'Operatore `#` nelle Direttive
L'operatore `#` all'interno delle direttive del preprocessore viene utilizzato per eseguire l'operazione di "stringificazione", cioè convertire il suo argomento in una stringa letterale.
#include <stdio.h>
// Definizione di una macro con stringificazione
#define STRINGIFY(x) #x
int main() {
// Utilizzo della stringificazione
printf("Il valore di x è: %s\n", STRINGIFY(42));
return 0;
}
La Direttiva `#include`
La direttiva `#include` viene utilizzata per includere il contenuto di un file header in un file sorgente.
#include <stdio.h>
int main() {
// Utilizzo della direttiva #include per includere la libreria standard di input/output
printf("Ciao, mondo!\n");
return 0;
}
In questo esempio, la libreria standard di input/output (`stdio.h`) viene inclusa nel programma utilizzando la direttiva `#include`. Le direttive del preprocessore forniscono un modo per personalizzare e gestire il processo di compilazione e sono uno strumento potente per rendere il codice più flessibile e leggibile.