Subject: Re: packed structures
From: [email-masked] (Budi Sutardja)

12 Aug 1998 09:31:20 -0700
Message-ID: <[email-masked]>
References: <000101bdc547$2b785c20$e645aace@TomStokes>
Reply-To: [email-masked]
Mime-Version: 1.0
Content-Type: text/plain; charset=gb2312
Content-Transfer-Encoding: 7bit
To: Tom Stokes <[email-masked]>
Cc: CYGWIN32 <[email-masked]>

Tom Stokes wrote:
> 
> The size of this structure is 12 which is wrong. What am I missing?

The "packed" modifier has to be applied to the structure
not the structure's members, to do what you want.
i.e.

typedef struct a {
        long a;
        char b;
        short c;
        short d;
        } __attribute__((packed)) A;

sizeof(A) will be 9 not 12.

-- budi

> typedef struct HeaderTag {
>     ULONG          HeaderLength;
>     CHAR             PackingType __attribute__ ((packed));
>     USHORT         NumRows __attribute__ ((packed));
>     USHORT         PackedSize __attribute__ ((packed));
>     } HeaderType, *pHeaderType;
> 
> Also, I  have a lot of structures to pack. Is there nothing like a #pragma
> pack(1) followed later by #pragma pack()?
> 
>         Tom Stokes
> 
> -
> For help on using this list (especially unsubscribing), send a message to
> "[email-masked]" with one line of text: "help".

--
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".