Aligner les champs (Delphi)
Remonter à Liste des directives de compilation Delphi - 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 Delphi dans la section Formats de données internes (Delphi)#Types enregistrement.
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 macOS, l'alignement de la pile doit être effectué sur des frontières de 16 octets.