![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
packed [D6]
SergP © (2006-02-04 23:56:00)Есть небольшой вопрос:
Если я использую какую-нить структуру, размер элементов которого кратен 4 байтам, будет ли разница в том применяю ли я в описании этого типа packed или не применяю?
И всегда ли?
Defunct (2006-02-05 08:07:00) [21]packed не распространяется на array.
packed распространяется только на record.
> Я так понял, что по умолчанию 8 а не 4, как я думал раньше. (Кстати какой смысл ставить 8 на 32-разрядных процессорах?)
не забываейте об MMX и SSE/SSE2. некоторые команды работают эффективнее с выравниванием на границу 8. А некоторые команды вообще не работают без такого выравнивания. Например.
movq - эффективнее с выравниванием на границу 8
movdqa - вообще не работает если нет выравнивания на границу 8.
если действительно интересно можете почитать Intel Architecture Software Development Manual (volume 2)
SergP (2006-02-05 07:54:00) [22]
> Lamer@fools.ua © (05.02.06 00:06) [1]
> Бывает ещё {$A8}.
Я так понял, что по умолчанию 8 а не 4, как я думал раньше. (Кстати какой смысл ставить 8 на 32-разрядных процессорах?)
Хорошо...Тогда такой вопрос:
Эквивалентно ли такое описание:
{$A-}
A: array of record
...
{$A+}
такому:
A: packed array of packed record
...
?
PAVIA (2006-02-05 02:51:00) [23]Будет притом всегда.
Lamer@fools.ua (2006-02-05 00:06:00) [24]Бывает ещё
{$A8}.
В общем, "$Align" + F1.