Aligner les champs (Object Pascal)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Liste des directives de compilation Object Pascal - Index

Type

Commutateur

Syntaxe

{$A+}, {$A-}, {$A1}, {$A2}, {$A4}, {$A8} ou {$A16} {$ALIGN ON}, {$ALIGN OFF}, {$ALIGN 1}, {$ALIGN 2}, {$ALIGN 4}, {$ALIGN 8} ou {$ALIGN 16}

Par défaut

{$A8} {$ALIGN 8}

Portée

Locale



Remarques

La directive $A contrôle l'alignement maximal utilisé par le compilateur lors de l'introduction du remplissage pour aligner un champ.

Dans l'état {$A1} ou {$A-}, les champs ne sont jamais alignés. Tous les enregistrements et structures de classes sont packed.

Dans l'état {$A2}, les champs des types enregistrement déclarés sans le modificateur packed et les champs des structures de classe sont alignés sur des frontières de mots.

Dans l'état {$A4}, les champs des types enregistrement déclarés sans le modificateur packed et les champs des structures de classe sont alignés sur des frontières de doubles mots.

Dans l'état {$A8} ou {$A+}, les champs des types enregistrement déclarés sans le modificateur packed et les champs des structures de classe sont alignés sur des frontières de quadruples mots.

Dans l'état {$A16}, les champs des types enregistrement déclarés sans le modificateur packed et les champs des structures de classe sont alignés sur des frontières de doubles mots quadruples.

L'alignement de champ de type enregistrement est décrit dans le Guide du langage Object Pascal à la section Types enregistrements.

Quel que soit l'état de la directive $A, les variables et constantes typées sont toujours alignées pour un accès optimal. Dans l'état {$A8}, l'exécution est plus rapide.

Pour les applications Mac OS X, l'alignement de la pile doit être effectué sur des frontières de 16 octets.

Voir aussi