Felder ausrichten (Object Pascal)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Liste der Object Pascal-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 Object Pascal-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 Mac OS X-Anwendungen muss die Stack-Ausrichtung auf 16-Byte-Grenzen gesetzt werden.

Siehe auch