Форум: "Прочее";
Текущий архив: 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