Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Präprozessor-Optionen

&pagelevel(4)&pagelevel

-A "name(token-Folge)"

Mit dieser Option kann ein Prädikat (Assertion) definiert werden, analog zur Präprozessor-Anweisung #assert (siehe Abschnitt „Erweiterungen gegenüber ANSI-/ISO-C“ im C/C++-Benutzerhandbuch [4]). Die Anführungszeichen werden wegen der Sonderbedeutung der runden Klammern in der POSIX-Shell benötigt. Alternativ können die runden Klammern auch mit dem Gegenschrägstrich \ entwertet werden:
-A name\(token-Folge\)

-C

Diese Option wird nur ausgewertet, wenn gleichzeitig die Option -E oder -P angegeben wird (siehe "Optionen zur Auswahl von Übersetzungsphasen"). Sie bewirkt, dass C- bzw. C++-Kommentare in der Präprozessorausgabe nicht entfernt werden. Standardmäßig werden die Kommentare entfernt.

-D name[=wert]

Mit dieser Option lassen sich Namen, symbolische Konstanten und Makros definieren (analog zur Präprozessoranweisung #define).
-D name wirkt wie eine Anweisung #define name 1,
-D name=wert entspricht der #define-Anweisung für Textersatz #define name wert.

-H

Es wird während des Übersetzungslaufs eine Liste aller benutzten Include-Dateien auf die Standard-Fehlerausgabe stderr ausgegeben.

-i header

Mit dieser Option wird eine Include-Datei header spezifiziert, die vor dem Quellprogrammtext inkludiert wird (Pre-Include).

Für header kann wahlweise angegeben werden:

  • vollqualifizierter Pfadname der Include-Datei

  • relativer Pfadname der Include-Datei auf Basis der Option -I

Die durch header spezifizierte Include-Datei wird analog einer Include-Datei behandelt, die in einer #include-Anweisung am Anfang der Quellprogramm-Datei angegeben ist. Sollen mehrere Include-Dateien pre-inkludiert werden, dann müssen die zugehörigen #include-Anweisungen in einer einzigen Include-Datei zusammengefasst werden, die dann via Option -i zu spezifizieren ist.

-I dvz

dvz wird in die Liste der Dateiverzeichnisse aufgenommen, in denen der Präprozessor nach Include-Dateien sucht. Wird diese Option mehrfach angegeben, so bestimmt die Reihenfolge der Angabe auch die Reihenfolge der Suche nach Include-Dateien.

Wenn in der #include-Anweisung der relative Pfadname der Include-Datei (beginnt nicht mit Schrägstrich /) in Anführungszeichen "..." eingeschlossen ist, durchsucht der Präprozessor die Dateiverzeichnisse in folgender Reihenfolge:

  1. das Dateiverzeichnis der Quell- oder Include-Datei, die die #include-Anweisung enthält

  2. die Dateiverzeichnisse, die mit der Präprozessor-Option -I angegeben wurden

  3. entweder die mit der Option -Y I angegebenen Dateiverzeichnisse oder die Standard-Dateiverzeichnisse (siehe "Benutzen der POSIX-Bibliotheksfunktionen").

Wenn in der #include-Anweisung der relative Pfadname der Include-Datei in spitzen Klammern <...> eingeschlossen ist, durchsucht der Präprozessor nur die oben unter 2. und 3. angegebenen Dateiverzeichnisse.

Wenn der Präprozessor statt der Standard-Dateiverzeichnisse andere Dateiverzeichnisse zuletzt durchsuchen soll, können diese mit der Option -Y I angegeben werden.

-K arg1[,arg2...]

Allgemeine Eingaberegeln zur -K-Option finden Sie im Abschnitt "Aufruf-Syntax und allgemeine Regeln".
Als Argumente arg zur Steuerung des Präprozessor-Verhaltens sind folgende Angaben möglich:

ansi_cpp
kr_cpp

-K ansi_cpp ist in allen C- und C++-Sprachmodi des Compilers voreingestellt. Das heißt, dass auch im K&R-C-Modus das Präprozessor-Verhalten entsprechend dem ANSI-/ISO-C-Standard unterstützt wird.
Mit -K kr_cpp kann das veraltete Präprozessor-Verhalten gemäß Reiser cpp und Johnson pcc eingeschaltet werden.

-U name

Die Definition für ein Makro oder eine symbolische Konstante name wird gelöscht (analog zur Präprozessoranweisung #undef). name ist ein vordefinierter Präprozessorname (siehe "Vordefinierte Präprozessornamen") oder ein Name, der mit der Option -D in der Kommandozeile vor oder nach der Option -U definiert wurde.
Auf #define-Anweisungen im Quellprogramm hat die Option keine Wirkung.

-Y I,dvz[:dvz...]

Der Präprozessor sucht zuletzt in den mit dvz angegebenen Verzeichnissen nach Include-Dateien.
Ohne Angabe dieser Option werden die Standard-Dateiverzeichnisse zuletzt durchsucht (siehe "Benutzen der POSIX-Bibliotheksfunktionen").