Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
14-65628
Blackman
2003-09-27 21:39
2003.10.20
Суббота 27 сентября 2003 года


1-65410
Pavel Obishenko
2003-10-08 01:01
2003.10.20
SpeedButton и картинка


1-65437
NewD
2003-10-07 17:21
2003.10.20
Очень нужно срочно!!!


3-65364
Дмитрий К.
2003-09-29 12:27
2003.10.20
Окрашивание фона в таблице по нажатию клавиши


14-65627
mrddim
2003-09-30 22:55
2003.10.20
Большой Delphi FAQ




   Наверх