1.2.59. $PACKENUM или $Z : Минимальный размер перечисляемого типа

Вверх  Предыдущий  Следующий

Эта директива указывает компилятору минимальное количество байтов, которое он должен использовать при хранении перечисляемых типов. Это требует следующего формата:

{$PACKENUM xxx}
{$MINENUMSIZE xxx}

где формат $MINENUMSIZE используется для совместимости с Delphi. xxx может быть одним из значений 1, 2, 4, NORMAL или DEFAULT.

По умолчанию размер перечисляемых типов определяется режимом компилятора:

В режимах Delphi и TP размер равен 1.

В режиме MacPas размер равен 2.

Во всех остальных режимах, размер по умолчанию равен 4.

В качестве альтернативного формата можно использовать {$Z1}, {$Z2} или {$Z4}. Формат {$Z} принимает логический аргумент, где ON эквивалентно {$Z4}, а OFF эквивалентно {$Z1}.

В следующем коде

{$PACKENUM 1}
Type
  Days = (monday, tuesday, wednesday, thursday, friday, saturday, sunday);

Будет использоваться 1 байт для хранения переменной типа Days, хотя в нормальном режиме должно использоваться 4 байта. Описанный выше код эквивалентен следующему:

{$Z1}
Type
  Days = (monday, tuesday, wednesday, thursday, friday, saturday, sunday);

или эквивалентен

{$Z OFF}
Type
  Days = (monday, tuesday, wednesday, thursday, friday, saturday, sunday);