Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.20;
Скачать: CL | DM;

Вниз

Что значит слово packed в объявлениях   Найти похожие ветки 

 
michael ©   (2003-10-01 14:16) [0]

Что значит слово packed в следующих объявлениях:
TPhoneRec = packed record
PersonName: string[25];
Address: string[25];
Phone: string[16];
end;
Name: packed array[1..8] of char;
Чем бы они отличались если в них отсутствовало слово packed?


 
MBo ©   (2003-10-01 14:18) [1]

см. хелп, там это есть.
кратко - не будет выравнивания данных, они будут лежать вплотную


 
clickmaker ©   (2003-10-01 14:23) [2]

Обычно это используется при переводе структур из DLL без исходников, когда не ясно, какое там выравнивание стоит. Если рекорд юзается только твоей прогой, смысла в этом особого нет


 
Anatoly Podgoretsky ©   (2003-10-01 15:10) [3]

А вот это абсурд, если не ясно какое там выравнивание стоит, то packed не поможет.


 
michael ©   (2003-10-01 15:32) [4]


> Anatoly Podgoretsky © (01.10.03 15:10) [3]

Дак может вы тогда объясните? Я токое обявление встертил в вашей статье.


 
clickmaker ©   (2003-10-01 15:38) [5]

Ну да, неверно выразился :)

Короче, если на Си написана DLL, в ней есть структура, которую хочется поюзать из дельфового приложения, то чтобы не зависеть от настроек выравнивания компиляторов можно так сделать: в Си ее объявить так

#pragma pack(1)
struct TPhoneRec {
char PersonName[25];
char Address[25];
char Phone[16];
}
#pragma pack(1)

ну а в Дельфях

TPhoneRec = packed record
PersonName: array[0..24] of char;
...
end;

Ну и при записи рекордов в двоичные файлы тоже полезно, чтобы несовместимостей между различными приложениями не возникало


 
Е-Моё имя ©   (2003-10-01 15:42) [6]


> Что значит слово packed в объявлениях

если полей в записи на N байт, значит именно N она и будет занимать
если не packed-может быть N+m



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

Текущий архив: 2003.10.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-65526
chadnov
2003-10-08 08:07
2003.10.20
Как программно разархивировать ZIP?


14-65610
Izyum
2003-10-01 10:18
2003.10.20
Разве можно так пить?


3-65327
Ренат
2003-09-30 08:27
2003.10.20
Значение типа дата в строковое поле


3-65311
- cherry -
2003-09-30 17:01
2003.10.20
использование sequences


3-65337
Andy
2003-09-30 08:01
2003.10.20
Как написать запрос