{$ALIGN 4}
program stringalignmenttest;
uses
sysutils;
type
tRecString = record
string1 : string [4];
string2 : string [16];
string3 : string [8];
end;
tRecInt = record
int1 : shortint;
int2 : integer;
int3 : shortint;
int4 : shortint;
int5 : integer;
end;
var
recstring : tRecString;
recint : tRecInt;
fstr : file of tRecString;
fint : file of TRecInt;
fname : string;
alstring : string;
begin
recint.int1 := 1;
recint.int2 := 2;
recint.int3 := 3;
recint.int4 := 4;
recint.int5 := 5;
recstring.string1 := 'ABCD';
recstring.string2 := 'ABCDEFGHIJKLMNOP';
recstring.string3 := 'ABCDEFGH';
alstring := '-a4';
fname := 'bindump';
{$IFDEF WIN32}
fname += '-win32';
{$ENDIF}
{$IFDEF LINUX}
{$IFDEF CPUARM}
fname += '-linuxarm';
{$ENDIF}
{$IFDEF CPU386}
fname += '-linuxi386';
{$ENDIF}
{$ENDIF}
assignFile(fint, fname + '-int' + alstring);
rewrite(fint);
Write(fint, recint);
closefile(fint);
writeln('sizeof recint: ' + IntToStr(sizeof(recint)));
assignFile(fstr, fname + '-string' + alstring);
rewrite(fstr);
Write(fstr, recstring);
closefile(fstr);
writeln('sizeof recstring: ' + IntToStr(sizeof(recstring)));
writeln('sizeof recstring.string1: ' + IntToStr(sizeof(recstring.string1)));
writeln('sizeof recstring.string2: ' + IntToStr(sizeof(recstring.string2)));
writeln('sizeof recstring.string3: ' + IntToStr(sizeof(recstring.string3)));
end.