Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Packed Record ---- Record [D7, WinXP]


AndersoNRules ©   (2004-07-27 11:56:00) 

V cheom razlichie mejdu Packed record i prost record'om ?


VMcL   (2004-07-27 12:20:00) [1]

>>Григорьев Антон ©  (27.07.04 12:08) [2]

В D6 тоже {$ALIGN 8} есть, причем 8 - по умолчанию.


Anatoly Podgoretsky   (2004-07-27 12:18:00) [2]

Григорьев Антон ©   (27.07.04 12:08) [2]
И это не совсем верно - выравнивание на границу выравнивания, а это переменная величина. Жалко что нельзя на границу 16, 32


Sandman25   (2004-07-27 12:14:00) [3]

[2] Григорьев Антон ©   (27.07.04 12:08)

Есть настройка компилятора $A. В D6 она позволяет указать выравнивание.


Григорьев Антон   (2004-07-27 12:08:00) [4]


> В просто Record каждое поле выравнивается на границу слова.


В целом верно, но выравнивание не на слово, а на двойное слово (до Delphi 6 включительно), а в Delphi 7 - на 8 байт по умолчанию, но это можно изменить в настройках компилятора.


KSergey   (2004-07-27 12:06:00) [5]

В просто Record каждое поле выравнивается на границу слова. Так быстрее доступ. Но каждый элемент такойц структуры может занимать больше места в памяти из-за "пропускаемых" быйтов (при выравнивании)
В Packed Record каждое поле идет вслед на предыдущим. Без пропусков. Экономим память, несколько теряем скорость.


Наверх

Титульная страница Поиск, карта сайта Написать письмо