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