1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
type
pbyte = ^byte;
tr = bitpacked record
a,b,c: byte;
d,e:0..15;
f: byte;
g: 0..$ffffff; { 3 bytes }
h: byte;
end;
procedure p(b: pbyte);
begin
b^ := $12
end;
var
r: tr;
begin
fillchar(r,sizeof(r),0);
p(@r.a);
if (r.a<>$12) then
halt(1);
fillchar(r,sizeof(r),0);
p(@r.b);
if (r.b<>$12) then
halt(1);
fillchar(r,sizeof(r),0);
p(@r.c);
if (r.c<>$12) then
halt(1);
fillchar(r,sizeof(r),0);
p(@r.f);
if (r.f<>$12) then
halt(1);
fillchar(r,sizeof(r),0);
p(@r.h);
if (r.h<>$12) then
halt(1);
end.
|