#pragma, #pragmaSave/Restore/Default
Implementiert ab Version | 2015.r1 |
---|
Präprozessordirektiven zur Steuerung von Compiler-Internen Vorgängen. Die Pragma-Direktive wird textuell wie alle anderen Direktiven im Quelltext verarbeitet.
Syntax
- #pragma <Anweisung> <wert>
- #pragmaSave - Aktuelle Werte aller Pragmas zwischenspeichern.
- #pragmaRestore - Zwischengespeicherte Pragmawerte wiederherstellen.
- #pragmaDefault - Vorgabewerte Werte 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.
Anweisungen
Name | Beschreibung | Vorgabewert |
---|---|---|
DebugBuild | Wenn aktiviert, wird der Source als Debugbuild kompiliert, aktuelle Code-Zeile und Datei können im Code gelesen werden, z.B. zur Anzeige eines Fehlers in einer Exception. | false |
OptimizeCode | Schaltet die Code-Optimierung ein oder aus. | true |
MethodSetupFast | Wenn aktiviert, wird die Methodeninitialisierung geschwindigkeitsoptimiert direkt in der Methode durchgeführt, anstatt eine Unterfunktion aufzurufen. Führt zur Erzeugung von mehr Maschinencode. | false |
MethodLocalVarInit | Aktiviert oder Deaktiviert die Initialisierung lokaler, temporärer Variablen auf 0 oder nil in Methoden. Wirkt sich bei Deaktivierung nur in Verbindung mit MethodSetupFast aus. | true |
MemoryBlockGarbageCollection | Aktiviert oder Deaktiviert die automatische Garbage-Collection des dynamischen verwalteten Arbeitsspeicherbereich der für Strings und MemoryBlocks verwendet wird. Wenn deaktiviert ist es sehr wichtig die Funktion GarbageCollection() manuell aufzurufen, um einen Speicherüberlauf zu vermeiden! | true |
MemoryBlockProcessAtomic | Aktiviert oder Deaktiviert die atomare Verarbeitung der Speichermanagementroutinen. Die atomare Verarbeitung deaktiviert die globalen Interrupts während der Ausführung einer Management-Routine. Dies kann deaktiviert werden wenn keine reentrante Speicherverwaltung notwendig ist oder um Jitter von Interrupts zu vermeiden. | true |