Описание |
Ключевое слово Packed говорит Delphi минимизировать память, взятую определенным объектом.
Обычно, сложные типы данных, такие как записи, имеют свои элементы по 2, 4 или 8 байта, соответствующие типам данных. Например, поле Word было бы 4-байтовое.
Записи также дополняются, для гарантии, что они закончены, 4-х байтовой границей.
Упаковка отменяет это, сжимая данные в наименьшую память, хотя с последующим уменьшенным доступом выполнения.
|
|
Примечания |
Примеры распакованных данных:
Word = 2 bytes
LongWord = 4 bytes
Single = 4 bytes
Double = 8 bytes
|
|
Похожие команды |
$Align Определяет данные будут выровнены или запакованы
Array Тип данных содержащий индексируемую коллекцию данных
Class Начинает объявление типа объектного класса
Object Позволяет данным типа подпрограмм обращаться к методу объекта
Record Структурный тип данных содержащий поля данных
| |
|
Пример кода : Упаковка записи для уменьшения памяти |
type // Объявление распакованной записи
TDefaultRecord = Record
name1 : string[4];
floater : single;
name2 : char;
int : Integer;
end;
// Объявление запакованной записи
TPackedRecord = Packed Record
name1 : string[4];
floater : single;
name2 : char;
int : Integer;
end;
var
defaultRec : TDefaultRecord;
packedRec : TPackedRecord;
begin
ShowMessage('Размер обычной записи = '+IntToStr(SizeOf(defaultRec)));
ShowMessage('Размер запакованной записи = '+IntToStr(SizeOf(packedRec)));
end;
|
Размер обычной записи = 20
Размер запакованной записи = 14
|
|