Главная страница
    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.068 c
2-1213858466
uno-84
2008-06-19 10:54
2008.07.20
Шрифт текста в строке StringGrid


11-1191960858
ElectriC
2007-10-10 00:14
2008.07.20
Проблема с KeyPreview


2-1213887146
Res
2008-06-19 18:52
2008.07.20
файл и потоки


2-1213699641
Alex_C
2008-06-17 14:47
2008.07.20
Маштабирование окна


15-1212473791
Tornado
2008-06-03 10:16
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский