This directive tells the compiler the minimum number of bytes it should use when storing enumerated types. It is of the following form:
{$PACKENUM xxx}
{$MINENUMSIZE xxx} |
Where the form with $MINENUMSIZE is for Delphi compatibility. xxx can be one of 1,2 or 4, or NORMAL or DEFAULT.
As an alternative form one can use f$Z1g, f$Z2gf$Z4g. Contrary to Delphi, the default is (f$Z4g).
So the following code
{$PACKENUM 1}
Type Days = (monday, tuesday, wednesday, thursday, friday, saturday, sunday); |
will use 1 byte to store a variable of type Days, whereas it nomally would use 4 bytes. The above code is equivalent to
{$Z1}
Type Days = (monday, tuesday, wednesday, thursday, friday, saturday, sunday); |