#pragma option
Nach oben zu Pragma-Direktiven (Übersicht) - Index
Inhaltsverzeichnis
Syntax (siehe Pseudogrammatik)
#pragma option OPT [ OPT ... ] #pragma option push OPT [ OPT ... ] #pragma option pop #pragma nopushoptwarn
Beschreibung
Benutzen Sie #pragma option
, wenn Sie Kommandozeilenoptionen in Ihren Quelltext aufnehmen wollen. #pragma option
kann auch mit den Argumenten push und pop verwendet werden.
#pragma option OPT [ OPT ... ]
OPT
kann jede Kommandozeilenoption sein (mit Ausnahme der im nächsten Absatz angegebenen). In einer Direktive kann eine beliebige Anzahl von Optionen kombiniert werden. Die folgenden Beispiele sind beide zulässig:
#pragma option -C #pragma option -C -A
Alle umschaltbaren Optionen (wie etwa -a oder -K) können wie in der Kommandozeile ein- und ausgeschaltet werden. Bei diesen umschaltbaren Optionen können Sie auch einen Punkt hinter die Option setzen, dadurch wird sie auf den durch die Kommandozeile, die Konfigurationsdatei oder das Optionen-Menü eingestellten Wert gesetzt. Dies ermöglicht es Ihnen, eine Option vorübergehend zu ändern und danach wieder die alte Einstellung zu aktivieren, ohne sich merken zu müssen (oder überhaupt nur wissen zu müssen), welche die alte Einstellung war.
Folgende Optionen dürfen nicht bei #pragma option
verwendet werden:
B |
c |
dname |
Dname=string |
efilename |
E |
Fx |
h |
Ifilename |
lexset |
M |
o |
P |
Q |
S |
T |
Uname |
V |
X |
Y |
Sie können #pragma
-, #include
-, #define
- und einige #if
-Direktiven in folgenden Fällen verwenden:
- Vor der Verwendung irgendeines Makronamens, der mit zwei Unterstrichen beginnt (und deshalb möglicherweise für ein vordefiniertes Makro steht), in einer
#if
-,#ifdef
-,#ifndef
- oder#elif
-Direktive. - Vor dem Auftreten des ersten echten Symbols (also der ersten C- oder C++Deklaration).
Bestimmte Kommandozeilenoptionen können nur vor den eben erwähnten Ereignissen in der Direktive #pragma option
stehen. Dazu gehören:
Efilename |
f |
i# |
m* |
npath |
ofilename |
U |
W |
z |
Andere Optionen können an jeder Stelle geändert werden. Die folgenden Optionen beeinflussen den Compiler nur dann, wenn sie zwischen Funktionen oder Objektdeklarationen geändert werden:
1 |
h |
r |
2 |
k |
rd |
A |
N |
v |
Ff |
O |
y |
G |
p |
Z |
Die folgenden Optionen können jederzeit geändert werden und wirken sich sofort aus:
A |
gn |
zE |
b |
jn |
zF |
C |
K |
zH |
d |
wxxx |
Außerdem kann ihnen auch ein Punkt (.) nachgestellt werden, um sie auf ihre in der Kommandozeile vorgegebene Einstellung zurückzusetzen.
#pragma option push OPT [ OPT ... ]
und #pragma option pop
Die Direktive #pragma option
kann auch mit den Argumenten push oder pop verwendet werden, um Compiler-Direktiven einfach zu verändern.
Mit #pragma option push
können alle (oder einige) Optionen gespeichert werden, bevor Dateien einbezogen werden, die viele Compiler-Optionen und -Warnungen potentiell ändern könnten, und dann kann mit der einzelnen Anweisung #pragma option pop
zurück zum vorherigen Status gewechselt werden. Ein Beispiel:
#pragma option push #include <theworld.h> #pragma option pop #include "mystuff.h"
Die Direktive #pragma option push
stellt alle Einstellungen der Compiler-Optionen und -Warnungen auf einen Stack und arbeitet dann alle Optionen (sofern vorhanden) ab. Das folgende Beispiel zeigt wie #pragma option push
mit oder ohne Optionen eingesetzt werden kann:
#pragma option push -C -A #pragma option push
Die Direktive #pragma option pop
ändert Compiler-Optionen und -Warnungen, indem die letzte Gruppe mit Optionen und Warnungen aus dem Stack entfernt wird. Wenn der Stack leer ist, wird die Warnung "Pragma Option pop ohne zugehörige Option push" ausgegeben und nichts ausgeführt.
Der folgende Code erzeugt eine Warnungmeldung für einen leeren Stack:
#pragma option push #pragma option pop #pragma option pop /* Warnung */
Obwohl es nicht zu empfehlen ist, können Sie diese Warnung mit der folgenden Direktive ausschalten: #pragma warn -nop
.
Wenn Sie versuchen, nach pop
andere Optionen anzugeben, erhalten Sie die Fehlermeldung "Nach pragma Option pop keine weitere Option zulässig". Folgender Code erzeugt beispielsweise einen Fehler:
#pragma option pop -C/* FEHLER */
Wenn der Stack mit den push
-Optionen am Ende der Datei nicht dem vom Anfang der Datei entspricht, erhalten Sie die Warnung: "Vorherige Optionen und Warnungen werden nicht wiederhergestellt." Diese Warnung können Sie mit der Direktive #pragma nopushoptwarn
ausschalten.