Nein, da kommt immer das raus, was ich erwarte, denn Arrays sind "praktisch" IMMER packed.
Außerdem gibt {$A} nur die maximale Ausrichtung an, wobei die Typen der Array-Felder hier ALLE gleich sind, innerhalb des Array, und sich die Array-Felder somit immer an sich selber ausrichten, also direkt hintereinander.
Das trifft auch auf ein
Array of TMist
zu, welches in sich pecked und direkt aneinanderhängend ausgerichtet ist, auch wenn dort "natürlich" das zusätzliche Füllbyte enthalten bleibt, da es im "kompleten" Typen eingebaut ist.
Delphi-Quellcode:
// {$ALIGN} mindestens 2
type
TMist = record
a: Word;
b: Byte;
// FüllByte
end;
TMist = record
a: Byte;
// FüllByte
b: Word;
end;
TMist ist 4 Byte und wird somit auch an Integergrenzen ausgerichtet.