On Mon, 23 Jul 2001, Michael Gesner wrote:
>> The structure can have arbitrary padding added by the compiler.
>
>That still beckons the question of what to do when I'm reading the pfile
>;o)
>
>I'm parsing the pfile to draw out player info for the website... If I use
>the figure 1292 I can draw out the number of players in the pfile... That
>works fine...
Until you modify it and the padding changes in subtle ways.
>I guess what I'm wondering...
>
>first of all... where does the compiler pad the struct...
Between fields. It depends on your architecture how much is padded. x86
seems to get 32-bit alignment. So:
struct {
short int foo;
long in tbar;
}
takes 8 bytes. 2(short) + 2(pad) + 4(long)
>second... would I just be alright to scan through the struct and pull the
>data, and forget the padding...
If you get the offset of every variable in the structure you can access
them directly from the PHP:
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
You'll have to enumerate by hand though.
--
George Greer
greerga@circlemud.org
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST