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



Reply via email to