What's the use of AlignAttribute?
What's the use of AlignAttribute?
The documentation only says Internal use only.
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.AlignAttribute
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.AlignAttribute
The documentation only says Internal use only.
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.AlignAttribute
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.AlignAttribute
It forces the element it annotates to be aligned like specified - valid values are the same as for $A (1, 2, 4, 8, 16)
ReplyDeleteExample:
{$A4}
type
TMyRecordA = record
x: Integer;
y: Int64;
end;
TMyRecordB = record
x: Integer;
[Align(8)]
y: Int64;
end;
var
a: TMyRecordA;
b: TMyRecordB;
offset: Integer;
begin
offset := PByte(@a.y) - PByte(@a);
Writeln(SizeOf(a));
Writeln(offset);
offset := PByte(@b.y) - PByte(@b);
Writeln(SizeOf(b));
Writeln(offset);
this will output:
12
4
16
8
Stefan Glienke Thanks for the explanation!
ReplyDelete