Präprozessor-Bedingungen
#if, #ifdef, #ifndef, #else, #elif, #endifDiese Präprozessor-Befehle geben dem Compiler die Fähigkeit, Verzweigungen vorzunehmen. Wenn eine Datei kompiliert wird, können diese Befehle benutzt werden, um bestimmte Zeilen zu integrieren oder auszulassen.
#if AusdruckWenn der Wert des Ausdrucks true ist, wird der Code, der dem Befehl folgt, kompiliert.
#ifdef MakroWenn das angegebene Makro durch ein #define definiert wurde, wird der Code, der dem Befehl folgt, kompiliert.
#ifndef MakroWenn das angegebene Makro nicht durch ein #define definiert wurde, wird der Code, der dem Befehl folgt, kompiliert.
#if Bedingung1 //... #elif Bedingung2 //... #endif
Der #elif-Befehl ist ein stark verkürztes "else if" und funktioniert genau so, wie man erwarten würde.
Beispiel 1:
#ifdef DEBUG cout << "Testversion! i=" << i << endl; #else cout << "finale Version!" << endl; #endif
Es ist zu beachten, wie viel einfacher die Fehlersuche mit diesem Konstrukt im Vergleich dazu, ständig "cout"s hinzuzufügen oder zu entfernen, ist.
Beispiel 2:
#define N 42 #ifdef N #if N == 1 cout << "N = 1"; #elif N == 2 cout << "N = 2"; #elif N == 42 cout << "answer to life, the universe and everything"; #endif #endif