This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: struct __attribute((packed));


Ralf Corsepius wrote:

Hi,

I just tripped over this snipped below in a piece of code, I didn't
write and which I don't understand:

...
struct somestruct {
 struct entrystruct *e1 __attribute__ ((packed));
 struct entrystruct *e2 __attribute__ ((packed));
};
...

Is this meaningful?

I guess the author wanted e1 and e2 to point to a "packed struct entrystruct", but this doesn't seem to be what GCC
interprets this code.






Take a look at the manual in the section about attributes of variables, <http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Variable-Attributes.html#Variable-Attributes>

It seems that GCC will interpret the above as e1 and e2 is packed within the struct somestruct so that e2 "immediately follows e1" (according to the manual). The packed attribute in this case does not refer to what e1 and e2 is pointing to. Though I'm not sure what putting the packed attribute on e1 will buy you.

HTH
Eric


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]