It comes from the shift from Char (on even byte boundary) cFieldType to 1
BYTE (padding) so that wFieldAttribute begins on a WORD boundary.  By
default, structs use a packing of 2 (bytes).

-----Original Message-----
From: Garry Chiang [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, December 21, 1999 11:02 PM
To: 'Palm Developers' Forum'
Subject: sizeof question


Hi all,

This seems basic but somehow I got different answer for it:

typedef struct
{
   Char         cFieldName[16];
   Char  cFieldType;
   Word wFieldAttribute;
   Word wFieldLength;
   UChar cFieldDecimal;
   UChar ucFieldOffset;
} FIELD_DEF;

I sizeof all the structure members and it returns me 23.
sizeof(FIELD_DEF) will return me 24 bytes, instead of 23.
Why is it so? Where does the one extra byte come from?

Thanks,
garry



Reply via email to