-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:
das Dateiverzeichnis der Quell- oder Include-Datei, die die
#include-Anweisung enthältdie Dateiverzeichnisse, die mit der Präprozessor-Option
-Iangegeben wurdenentweder die mit der Option
-Y Iangegebenen 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_cppkr_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").