Директива $MinEnumSize компилятора Delphi устанавливает минимальную память, используемую для хранения перечислимых типов.
- {$MinEnumSize 1}
- {$MinEnumSize 2}
- {$MinEnumSize 4}
Директива компилятора $MinEnumSize устанавливает минимальный размер хранилища в байтах, который будут занимать перечисляемые типы.
По умолчанию установлено в 1 байт, таким образом, обеспечивая вместимость для 256 чисел.
Если вы превысите текущий размер памяти, на любое определение чересчур большое значений чисел (более чем 256), или, более вероятно, определение значений перечисления, превышающих 256, то используется больший размер памяти. Директива $MinEnumSize просто определяет минимальное число байтов для использования.
Примечания.
$MinEnumSize эквивалентна $Z.
В вашем коде она может быть установлена много раз.
Значением по умолчанию является $MinEnumSize 1.
Директива компилятора $MinEnumSize: Различные размеры перечислимых типов
type
{$MinEnumSize 1}
TCars1 = (Rover, Jaguar, Honda); // Впишется в 1 байт
TFruit1 = (Banana=255, Apple, Pear); // Превысит один байт
{$MinEnumSize 4}
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
Похожие функции, процедуры и команды
$Z — устанавливает минимальную память, необходимую для держания в памяти перечислимых типов.
