Bloated Struct Problem
. .
pkejjy@gmail.com
Fri Jun 5 06:32:00 GMT 2009
Hi,
I've created this typedef:
typedef struct {
uint64_t a;
uint64_t b;
uint8_t c;
} my_type_t;
When I do sizeof(my_type_t), I find that it's 20 with GCC 4.0.3
(targetting i686), whereas obviously it needs only 17 bytes. If this
has changed in a more recent version of GCC, please inform.
(Upgrading is intractable for me at the moment.) However, I suspect
that it has not changed. In which case, why is sizeof() bloating my
type? Is it trying to help align every element of an array of this
type? If so, that would be a bad performance decision in this
multicore world, where memory footprint size matters much more than
alignment, generally speaking.
I can work around this with some macro magic, but I'd rather be clean
about it. Is there some command line switch that will fix this, e.g.
--fdont_bloat_structs?
Thanks for any insights.
More information about the Gcc-help
mailing list