Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
ВнизРасположение в памяти структур Найти похожие ветки
← →
deplhi (2006-08-22 15:54) [0]К примеру есть у мну структура:
struct = record
arr: array[1..33] of char;
g: word;
s: longword;
end;
Насколько я знаю в памяти эта структура расположена последовательно. т.е. 33 байта для массива , за ней сразу 2 байта для типа ворд и 4 для лонгворд, я прав???
И вообще, можно мне как-нить эту структуру получить в виде последовательности байт в одной переменной???
← →
Ega23 © (2006-08-22 16:03) [1]
> struct = recordstruct = packed record
← →
guav © (2006-08-23 00:15) [2]> Насколько я знаю в памяти эта структура расположена последовательно.
> т.е. 33 байта для массива , за ней сразу 2 байта для типа
> ворд и 4 для лонгворд, я прав???
Обычно нет, может быть да - зависит от опций и директив компилятора. см {$A}.
Чтобы было грантированоо да - использовать packed, см [1]
> И вообще, можно мне как-нить эту структуру получить в виде
> последовательности байт в одной переменной???
Да.
← →
Anatoly Podgoretsky © (2006-08-23 00:36) [3]Не прав, при таком обхявлении действуют правила выравнивания элементов, тебе надо из [1]
И на всякий случай сменить тип char это generic тип, поэтому размер в один байт не гарантируется.
← →
Ketmar © (2006-08-23 00:42) [4]> [3] Anatoly Podgoretsky © (23.08.06 00:36)
кстати, и перед array можно добавить packed. для вящего "понятизма". да и мало ли что...
← →
DiamondShark © (2006-08-23 00:58) [5]Type
Packedmania = packed file of packed array [byte] of packed record a: packed set of byte end;
← →
guav © (2006-08-23 01:22) [6]> [5] DiamondShark © (23.08.06 00:58)
LOL
Ещё можно добавить:Type
Packedmania = packed class a: packed file of packed array [byte] of packed record a: packed set of byte end; end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.047 c