Справочник функций и процедур Delphi: Packed

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

  Реклама:

 

Packed
Ключевое слово
Уплотняет сложные типы данных в минимальный объём памяти unit
  
type Name = Packed array[...] of ...;
type Name = Packed class ... end;
type Name = Packed object ... end;
type Name = Packed record ... end;

Google  
 
Описание
Ключевое слово 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
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook