HP Pascal/iX Programmer's Guide (31502-90023)

A-: 17
FALSE Variant
The variants f1 and f2 do not start on the same boundary; therefore, f1
cannot be overlaid with f2.
Sometimes you can reduce the space that a record takes by declaring its
fields in different order.
Example
VAR
upr1 : RECORD
b : boolean;
p : 0..32767;
c : char;
END;
upr2 : RECORD
b : boolean;
c : char;
p : 0..32767;
END;
The only difference between the variables upr1 and upr2 above is the
order of their fields.
The variable upr1 takes six bytes:
Because p must be 2-byte-aligned, it cannot start in the second byte.
The sixth byte is allocated to upr1 also, because records are
2-byte-aligned.
The variable upr2 takes four bytes: