Felder ausrichten (Delphi)
Nach oben zu Liste der Delphi-Compiler-Direktiven - Index
Typ |
Option |
Syntax |
{$A+}, {$A-}, {$A1}, {$A2}, {$A4}, {$A8} oder {$A16} {$ALIGN ON}, {$ALIGN OFF}, {$ALIGN 1}, {$ALIGN 2}, {$ALIGN 4}, {$ALIGN 8} oder {$ALIGN 16} |
Vorgabe |
{$A8} {$ALIGN 8} |
Bereich |
Lokal |
Bemerkungen
Die Direktive $A steuert die maximale Ausrichtung, die vom Compiler für das Auffüllen von Feldern mit Leerzeichen beim Ausrichten verwendet wird.
Im Status {$A1} oder {$A-} werden Felder nicht ausgerichtet. Alle Records und Klassenstrukturen werden gepackt.
Im Status {$A2} werden die ohne den Bezeichner packed deklarierten Felder in Record-Typen und die Felder in Klassenstrukturen auf Wortgrenzen ausgerichtet.
Im Status {$A4} werden die ohne den Bezeichner packed deklarierten Felder in Record-Typen und die Felder in Klassenstrukturen auf Doppelwortgrenzen ausgerichtet.
Im Status {$A8} oder {$A+} werden die ohne den Bezeichner packed deklarierten Felder in Record-Typen und die Felder in Klassenstrukturen auf Quadword-Grenzen ausgerichtet.
Im Status {$A16} werden die ohne den Bezeichner packed deklarierten Felder in Record-Typen und die Felder in Klassenstrukturen auf Doppel-Quadword-Grenzen ausgerichtet.
Die Ausrichtung von Feldern in Record-Typen wird in der Delphi-Sprachreferenz unter Interne Datenformate#Record-Typen beschrieben.
Variablen und typisierte Konstanten werden unabhängig von der Direktive $A immer für einen optimalen Zugriff ausgerichtet. Der Status {$A8} beschleunigt die Ausführung.
Bei macOS-Anwendungen muss die Stack-Ausrichtung auf 16-Byte-Grenzen gesetzt werden.