Разное
Облака / Clouds

The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>

time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Delphi - Справочник: Packed
Packed
|
type Name = Packed array[...] of ...; type Name = Packed class ... end; type Name = Packed object ... end; type Name = Packed record ... end; |
Ключевое слово (Unit )
|
Уплотняет сложные типы данных в минимальный объём памяти
|
Описание:
|
Ключевое слово 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 |