Директива $Z компилятора Delphi устанавливает минимальную память, необходимую для держания в памяти перечислимых типов.
- {$Z1}
- {$Z2}
- {$Z4}
Директива компилятора $Z устанавливает минимальный размер памяти, в байтах, которые необходимы перечислимым типам.
По умолчанию установлено 1 байт, таким образом, обеспечивая вместимость 256 перечислений.
Если Вы превысите текущий размер памяти, на любое определение, превысившее перечислимое значений (более чем 256), или, более вероятно, определение значений перечислений превышающих 256, то используется больший размер памяти. Директива $Z просто определяет минимальное число байтов для использования (см. пример).
Примечание.
$MinEnumSize эквивалентна $Z.
Она может быть установлена в вашем коде много раз.
Значение по умолчанию – $Z1.
Директива компилятора $Z: Различные размеры перечислимых типов
type
{$Z1}
TCars1 = (Rover, Jaguar, Honda); // Впишется в 1 байт
TFruit1 = (Banana=255, Apple, Pear); // Превысит один байт
{$Z4}
TCars2 = (Ford, Nissan, Vauxhall); // Теперь используется 4 байта
TFruit2 = (Orange=255, Plum, Grape); // Теперь используется 4 байта
begin
ShowMessage('TCars1 размер = '+IntToStr(SizeOf(TCars1)));
ShowMessage('TFruit1 размер = '+IntToStr(SizeOf(TFruit1)));
ShowMessage('TCars2 размер = '+IntToStr(SizeOf(TCars2)));
ShowMessage('TFruit2 размер = '+IntToStr(SizeOf(TFruit2)));
end;
Результат
TCars1 размер = 1
TFruit1 размер = 2
TCars2 размер = 4
TFruit2 размер = 4
Похожие функции, процедуры и команды
$MinEnumSize — устанавливает минимальную память, используемую для хранения перечислимых типов.
