Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.039 c
1-68847
Sergey_Elf
2002-10-10 12:56
2002.10.21
CreateProcess не работает без полного пути к исп.файлу, а надо бы


6-68898
Алёшка
2002-08-19 19:24
2002.10.21
Как написать что-то типа прохи-сервера


14-69011
SPeller
2002-09-30 13:11
2002.10.21
UBPFD - бесплатная база готовых решений для Delphi


14-68913
der
2002-09-26 14:34
2002.10.21
Бухгалтеру надо в Экселе вставить автоматом сумму на странице


1-68710
dimonf
2002-10-08 20:41
2002.10.21
Как правильно округлить 3.0299999 в 3.03?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский