#if, #ifdef, #ifndef, #else, #elif, #endif
Questo sei comandi del preprocessore gli conferiscono capacità di eseguire controlli logici di base. Durante il processo di compilazione questi comandi permettono di decidere quali linee di codice devono essere incluse oppure omesse.
#if expression
Se il valore dell'espressione è vero allora il codice che segue immediatamente viene compilato.
#ifdef macro
Se la macro è stata definita con un #define allora il codice che segue immediatamente il comando viene compilato
#ifndef macro
Questo esempio compila il codice immediatamente seguente se la macro non è stata definita
Note: il comand #elif è una contrazione della più comune parola chiave 'elseif' e funziona come essa. Potete usare anche “defined” o ”!defined” dopo un #if per controllare la definizione di una macro
Alcnuni esempi:
#ifdef DEBUG cout << "This is the test version, i=" << i << endl; #else cout << "This is the production version!" << endl; #endif
definendo la macro DEBUG il programma include la riga di debug 'cout' che, una volta risolto il problema, può essere di nuovo esclusa senza modificare il codice (soprattutto se i messaggi di debug sparsi nell'applicazione sono molti).
Argomenti correlati: #define