-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
-I
angegeben wurdenentweder 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").