![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 каждое поле идет вслед на предыдущим. Без пропусков. Экономим память, несколько теряем скорость.