#pragma, #pragmaSave/Restore/Default

Präprozessordirektiven zur Steuerung von Compiler-Internen Vorgängen. Die Pragma-Direktive wird textuell wie alle anderen Direktiven im Quelltext verarbeitet.

#pragma Pragma-Anweisung
#pragma Pragma-Anweisung Wert
#pragma Pragma-Anweisung = Wert
#pragmaSaveAktuelle Werte aller Pragmas zwischenspeichern.
#pragmaRestoreZwischengespeicherte Pragmawerte wiederherstellen.
#pragmaDefaultVorgabewerte aller Pragmas wiederherstellen.

Bei #pragmaSave/Restore ist eine Verschachtelung möglich. Die Tiefe ist dabei nicht begrenzt. #pragmaDefault wirkt sich nicht auf zwischengespeicherte Pragmawerte aus.

Pragma-Anweisungen

Anweisung Wert Vorgabe Beschreibung
CHECKBOUNDS true/false/enabled/disabled enabled Speichergrenzen überwachen.
CHECKNILOBJECT true/false/enabled/disabled enabled Objektzeiger auf Gültigkeit überwachen.
CHECKOBJECTS true/false/enabled/disabled enabled Objektspeicher überwachen.
CHECKOBJECTCAST true/false/enabled/disabled enabled Objekt-Casting überwachen.
CHECKSTACKOVERFLOW true/false/enabled/disabled enabled Stapelspeicher überwachen.
CHECKDIVBYZERO true/false/enabled/disabled enabled Überwachung von „Divisionen durch Null“.
CREATEOBJECTTREE true/false/enabled/disabled enabled Objectbaum zur Fehleranalyse erstellen.
DEBUGBUILD Wird aktiviert bei Vorhandensein und kann nicht aufgehoben werden. Programm als Debug-Build kompilieren.
OPTIMIZECODE true/false/enabled/disabled enabled Schaltet die Code-Optimierung ein oder aus.
TARGETCONSOLE true/false/enabled/disabled enabled Konsolen-Programmdatei erstellen (Windows)1).
TARGETDLL true/false/enabled/disabled disabled Shared Library (.dll bzw. .so) erstellen anstatt ausführbares Programm.
TARGETGUI true/false/enabled/disabled disabled GUI-Programmdatei erstellen (Windows)2).
TARGETLINUX true/false/enabled/disabled disabled Ziel-System einstellen: Linux (64 Bit)
TARGETWINDOWS true/false/enabled/disabled enabled Ziel-System einstellen: Windows (64 Bit)
1) , 2) Unter Windows wird zwischen einer Konsolen- oder GUI-Programmdatei unterschieden.