Главная страница
    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.46 MB
Время: 0.041 c
15-1212412057
владимир
2008-06-02 17:07
2008.07.20
подскажите где можно скачать учебник по движку GLScene


2-1213869168
NeiL
2008-06-19 13:52
2008.07.20
Компонент


2-1213973775
lewka-serdceed
2008-06-20 18:56
2008.07.20
Замена символа в строке другим символом


15-1212563337
Kolan
2008-06-04 11:08
2008.07.20
Есть подозрение, что найдено средство от зависания отладки...


15-1212429900
Nucer
2008-06-02 22:05
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский