Felder ausrichten (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

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 OS X-Anwendungen muss die Stack-Ausrichtung auf 16-Byte-Grenzen gesetzt werden. Einzelheiten finden Sie im Blog von Eli Boling unter http://blogs.embarcadero.com/eboling/2009/05/20/5607 (EN) .

Siehe auch