[fpc-devel] data alignment and int64 (or qword, maybe any singlepiece of size 8 if any)
Peter Vreman
peter at freepascal.org
Tue May 16 12:40:44 CEST 2006
> {$A-}
> type
> a= record
> a: int64;
> b: byte;
> end;
>
> var
> x: a;
> y: byte; // these are
> yy: longword; // 9
> zz: longword; // bytes
> z: a;
>
> begin
> writeln(sizeof(a));
> writeln(longint(@x));
> writeln(longint(@y));
> writeln(longint(@z));
> end.
>
>
> This program makes me feel strange: it aligns records by 16 bytes for no
> reason (last two addresses are odd). (Don't forget {$A-})
You are mixing record alignment and memory alignment.
More information about the fpc-devel
mailing list