Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.21;
Скачать: CL | DM;

Вниз

type TMyType= packed record   Найти похожие ветки 

 
Николай Быков ©   (2002-10-10 15:00) [0]

Я всегда писал type TMyType=record
А недавно увидел слово packed. что оно значит, в каких случаях нужно?


 
Best Before 2024   (2002-10-10 15:03) [1]

Press F1!!!

By default, the values in a structured type are aligned on word or double-word boundaries for faster access. When you declare a structured type, you can include the reserved word packed to implement compressed data storage.


 
still ©   (2002-10-10 15:06) [2]

By default, the values in a structured type are aligned on word or double-word boundaries for faster access.

Т.е. происходит выравнивание данных в записи, а когда Packed - не проиходит. В этом случае структура занимает меньше места, однако
Using packed slows data access and, in the case of a character array, affects type compatibility


 
Николай Быков ©   (2002-10-10 15:06) [3]

Если я не забыл аглицкий, то это для сжатия инфы?


 
Николай Быков ©   (2002-10-10 15:07) [4]

То есть получается надо писать без слова packed ?


 
Демонов Е.В. ©   (2002-10-10 15:09) [5]

А ещё можно Packed array


 
still ©   (2002-10-10 15:10) [6]


> Николай Быков © (10.10.02 15:07)
> То есть получается надо писать без слова packed ?

смотря для чего


 
NeyroSpace ©   (2002-10-10 15:14) [7]

type
TDateRec = record packed
Year: Integer;
Month: String[15]
end;
Физически это значит, что в памяти Month будет следовать сразу за Year.
@Month = @Year + sizeof(integer)
Я один раз долго не мог понять почему прибавляя к указателю размерность типа данных не попадаешь на начало следующего поля записи, потом оказалось, что нужно определять запись как Packed.
Если не указать Packed, то работает не всегда, что и приводит в "неписуемый восторг".


 
PVOzerski ©   (2002-10-10 15:38) [8]

Проще говоря, добавка packed к record в Delphi делает выравнивание полей=1, это аналогично в использованию в Delphi локальных директив {$A-},{$A1},{$align off} или {$align 1}, а в FPC - {$PACKRECORDS 1}. В BP выравнивания нет в принципе, до D6 {$a}/{$align} есть только +/- (on/off). Как в D1 - не помню, прошу прощения :^). В В D6 по умолчанию стоит {$A8}, в D3 {$A+}.



Страницы: 1 вся ветка

Текущий архив: 2002.10.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
6-68907
[BAD]Angel
2002-08-12 15:43
2002.10.21
Как отследить?


1-68861
Николай Быков
2002-10-10 15:00
2002.10.21
type TMyType= packed record


1-68804
ZEE
2002-10-08 17:43
2002.10.21
Вызов Properties


1-68720
maxim2
2002-10-11 06:09
2002.10.21
Комп зависает при использовании компонентов


14-68998
Донской
2002-09-18 20:06
2002.10.21
Глюк чего? Дельфей?