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

Вниз

Различие между двумя типами записей   Найти похожие ветки 

 
kyn66 ©   (2007-04-14 10:09) [0]

Уважаемые мастера, подскажите в чем отличие этих двух записей?

 TPerArray = packed record
    MesE : Integer;
    GodE : Integer;
    Priz   : Boolean;
 end;

и

 TPerArray = record
    MesE : Integer;
    GodE : Integer;
    Priz   : Boolean;
 end;


 
TUser ©   (2007-04-14 10:14) [1]

У второй записи в конце - три пустых (забитых ерундой) байта.


 
kyn66 ©   (2007-04-14 10:23) [2]

И только? Мне кажется здесь чегость поширше различие...


 
_Аноним   (2007-04-14 10:57) [3]

Неупакованная запись выравнивается в памяти.
То есть она не является непрерывной областью памяти, между полями возможен "мусор", каждое новое поле начинается не сразу после окончания предыдущего, а со смещения ,кратного например четырем.
Выравнивание делается для ускорения работы.
Сравни SizeOf(TPerArray) в двух случаях - они разные.
В случае, если запись неупакованная, ее нелья сравнивать с другой такой же с помощью CompareMem, и при стриминге можно налететь на грабли.


 
kyn66 ©   (2007-04-14 11:14) [4]

Короче лучше использовать упакоанную,я так понял, дабы избежать попадания мусора в мои поля?


 
DrPass ©   (2007-04-14 11:18) [5]


> Короче лучше использовать упакоанную,я так понял, дабы избежать
> попадания мусора в мои поля?

Смотря что ты собрался с ней делать. Если тебе нужно работать с записью как с единым целым (сохранять в файл, в БД, сравнивать через CompareMem и т.д.), то лучше упакованную. Если ты работаешь только с ее полями, то лучше неупакованную, быстродействие в этом случае будет выше.


 
kyn66 ©   (2007-04-14 12:20) [6]

Мне нужно просто держать некоторые параметры для дальнейшей работы. Их штук 5 будет(полей всмысле в записи). Я думаю здесь не принципиально говорить о скорости...


 
Германн ©   (2007-04-14 12:51) [7]


> Мне нужно просто держать некоторые параметры для дальнейшей
> работы. Их штук 5 будет(полей всмысле в записи). Я думаю
> здесь не принципиально говорить о скорости...
>

В этом случае вообще говорить не о чем. Разницы никакой.
Что воля, что неволя всё одно. (с)



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
15-1175870246
oldman
2007-04-06 18:37
2007.05.06
Спасибо Биллу Гейтсу, за то, что нам так весело...


15-1176088761
Steep
2007-04-09 07:19
2007.05.06
Delphi 2006


3-1171457314
Ega23
2007-02-14 15:48
2007.05.06
Master-Detail связь через TADODataSet


2-1176788211
Ega23
2007-04-17 09:36
2007.05.06
PlaySound - просветите


2-1176830256
Игрок
2007-04-17 21:17
2007.05.06
Color(16)