Директива $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 — встановлює мінімальну пам'ять, необхідну для утримання у пам'яті перелічених типів.