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

Вниз

Отличие packed record от record   Найти похожие ветки 

 
alex-drob ©   (2008-06-04 00:21) [0]

какая разница? когда что нужно использовать?


 
Игорь Шевченко ©   (2008-06-04 00:37) [1]

Никогда


 
Германн ©   (2008-06-04 00:40) [2]


> Игорь Шевченко ©   (04.06.08 00:37) [1]

Антислесарь?


 
Kerk ©   (2008-06-04 00:41) [3]

Нажми F1
зачем ж ты просишь цитировать хелп?


 
wicked ©   (2008-06-04 00:42) [4]

в record поля могут быть выравнены на границу 4, 8, 16 байт - как указано опциями компиляции

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

например, запись
x = record
   a: char;
   b: boolean;
   c: integer;
end;

при выравнивании на 8 байт займет в памяти
1 байт - поле a
7 байт - не используются
1 байт - поле b
7 байт - не используются
4 байта - поле c
4 байта - не используются
--------------
итого: 24 байта на запись

packed record займет
1 байт - поле a
1 байт - поле b
4 байта - поле c
--------------
итого: 6 байт на запись

преимущества простых record-ов - скорость доступа к полям записи
преимущества packed record-ов - возможность адекватно представлять форматы данных файлов, например, bmp, riff, swf и т. д.


 
Германн ©   (2008-06-04 00:49) [5]


> преимущества packed record-ов - возможность адекватно представлять
> форматы данных файлов, например, bmp, riff, swf и т. д.

Скажем так. Необходимость использования packed record-ов возникает тогда, когда вышеуказанные приходят в программу извне. И их структура задана внешними источниками.


 
alex-drob ©   (2008-06-04 00:54) [6]

т.е. если я использую такую структуру

x = record
  a: string;
  b: integer;
end;

у меня поле a 4 байта и b 4 байта или размер b будет равен колличеству символов в a?


 
Германн ©   (2008-06-04 00:56) [7]


> у меня поле a 4 байта и b 4 байта или размер b будет равен
> колличеству символов в a?
>

С какого перепуга размер b будет равен количеству символов в a?


 
@!!ex ©   (2008-06-04 00:58) [8]

> [6] alex-drob ©   (04.06.08 00:54)

string - это указатель.
Вот если бы shortstring использовал, то тогда бы b была смещена! относительно a на количество символов. Размер то у нее один фиг 4 байта в 32 ОС.


 
Германн ©   (2008-06-04 00:58) [9]


> alex-drob ©   (04.06.08 00:54) [6]

Что-то ты выдумываешь непонятное.
Опять наверно пытаешься освоить непонятный протокол передачи данных с внешних устройств?


 
alex-drob ©   (2008-06-04 01:04) [10]

ну a:string;
я так понимаю, размер a 4 - Байта а содержимого же больше.


 
alex-drob ©   (2008-06-04 01:05) [11]

всё, теперь понял! спасибо всем!



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

Форум: "Прочее";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.046 c
3-1202351741
Dmitry S
2008-02-07 05:35
2008.07.20
tree view и вообще


2-1213966686
nata
2008-06-20 16:58
2008.07.20
Русские идентификаторы в Delphi for .Net (BDS 2006)


15-1212669800
андр.
2008-06-05 16:43
2008.07.20
MS SQL 2000


2-1213708430
snake-as
2008-06-17 17:13
2008.07.20
Печать DBGrid


2-1213682365
lewka-serdceed
2008-06-17 09:59
2008.07.20
Выбор католога





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский