#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.

  • #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

NameBeschreibung 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