Vorherige Seite

Eine Ebene hoch

Nächste Seite

4.5.3 Bedingte Übersetzung

Der Preprozessor bietet die Möglichkeit, Teile eines Quellcodes nur bedingt zu übersetzen. Das heißt, die Teile, die nicht übersetzt werden, sind in dem übersetzten Programm nicht existent. Es gibt drei Möglichkeiten, eine Bedingte Übersetzung einzuleiten:

Die erste Variante ähnelt der bedingten Anweisung, aber: Der Befehl wird mit dem Doppelkreuz eingeleitet, die Bedingung folgt ohne Klammern und die Bedingung darf nur aus Konstanten bestehen. (Makronamen sind Konstanten.) Beispiel:

Die zweite und dritte Variante prüft, ob ein Makro existiert oder nicht. Beispiel: Während der Erstellung eines Programms ist es sinnvoll, an vielen Stellen Ausgabebefehle einzufügen, die aber bei der endgültigen Fassung entfernt werden sollen. Dafür wird gleich am Anfang das leere Makro DEBUG definiert.

Wenn die zusätzlichen Ausgaben entfernt werden sollen, muss nur die Zeile #define DEBUG gelöscht werden.

In dem Beispiel wurde bereits der Befehl zur Beendigung der Bedingten Übersetzung verwendet:

Der Preprozessor verwendet statt der geschweiften Klammern diesen Befehl, um den bedingten Block einzugrenzen.

Wenn es darum geht zwei Programmblöcke alternativ zu übersetzen, also entweder den einen oder den anderen, so steht folgender Befehl zur Verfügung:

Beispiel:

Wie bei den Befehlen für bedingte Anweisungen gibt es beim Preprozessor die Möglichkeit Bedingungen zu verketten. Anstatt die Befehle #else und #if hintereinander zu schreiben, wird der Befehl

eingeführt. Beispiel:

Die verbleibenden Befehle des Preprozessors #line, #error und #pragma werden hier nicht behandelt.