Align fields

 

Type                   Switch

Syntax               {$A+}, {$A-}, {$A1}, {$A2}, {$A4}, or {$A8}

{$ALIGN ON}, {$ALIGN OFF}, {$ALIGN 1}, {$ALIGN 2}, {$ALIGN 4}, or {$ALIGN 8}

Default              {$A8}

{$ALIGN 8}

Scope                Local

 

Remarks

The $A directive controls alignment of fields in record types and class structures.

In the {$A1} or {$A-} state, fields are never aligned. All record and class structures are packed.

In the {$A2} state, fields in record types that are declared without the packed modifier and fields in class structures are aligned on word boundaries.

In the {$A4} state, fields in record types that are declared without the packed modifier and fields in class structures are aligned on double-word boundaries.

In the {$A8} or {$A+} state, fields in record types that are declared without the packed modifier and fields in class structures are aligned on quad-word boundaries.

Record type field alignment is described in the Object Pascal Language Guide. See Record types.

Regardless of the state of the $A directive, variables and typed constants are always aligned for optimal access. In the {$A8} state, execution will be faster.

 

Compiler directives (list)