Delphi-Help

Packed

Печать
Рейтинг пользователей: / 0
ХудшийЛучший 

Packed

Описание

type Name = Packed array[...] of ...;
type Name = Packed class ... end;
type Name = Packed object ... end;
type Name = Packed record ... end;

Ключевое слово Packed говорит Delphi минимизировать память, взятую определенным объектом.

Обычно, сложные типы данных, такие как записи, имеют свои элементы по 2, 4 или 8 байта, соответствующие типам данных. Например, поле Word было бы 4-байтовое.

Записи также дополняются, для гарантии, что они закончены, 4-х байтовой границей.

Упаковка отменяет это, сжимая данные в наименьшую память, хотя с последующим уменьшенным доступом выполнения.

Пример кода

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

Примечание

Примеры распакованных данных:

Word     = 2 bytes
LongWord = 4 bytes
Single   = 4 bytes
Double   = 8 bytes

Авторизация



Счетчики