uni
Il preprocessore è una parte del compilatore che elabora il testo del programma prima dell’analisi lessicale e sintattica.
Svolge alcune azioni:

  1. include altri file nel testo
  2. espande secondo le loro definizioni i simboli definiti dall’utente
  3. include o esclude parti di codice che verrĂ  compilato.
    Queste operazioni sono controllate dalle direttive per il preprocessore (quelle che iniziano con #) e possono essere inclusioni di file header.
  4. percorso a partire da cartelle standard: #include<file.h>
  5. percorso a partire dalla cartella in cui avviene la compilazione: #include "file.h".

Define

#define identificatore token-string
Con define posso fare si che il preprocessore sostituisca ogni istanza del mio identificatore con il valore token-string.
Si può anche usare come macro, ovvero un simbolo che viene sostituito con una sequenza di elementi lessicali (la sua definizione):
#define massimo(A,B) ((A)>(B) ? (A) : (B))
Quindi ogni volta che il preprocessore trova massimo(A,B) lo sostituisce con il numero piĂą grande.

Compilazione condizionale

#if, #elif, #else, #endif.

Forme Concise

#ifdef = #if defined identifier
#ifndef = #if !defined identifier

Define a riga di comando

Linux: g++ -DLINUX main.cpp -o main.exe

Evitare la doppia implementazione di un file

//file complesso.h
#ifndef complesso.h
#define complesso.h
	//contenuto del file complesso.h
#endif

//file main.cpp
#include "complesso.h"
#include "complesso.h" //il file viene comunque incluso una sola volta.

int main() {
//blah blah
}