Subj : Re: Why not unions To : comp.programming From : Alex Fraser Date : Thu Jul 28 2005 12:26 am "Rob Thorpe" wrote in message news:1122490853.570267.241310@f14g2000cwb.googlegroups.com... [snip] > In C there are two main uses of unions: > 1. To save space by using a single location to store many types of > data. [snip] > union bar { > int x; > double y; > } > struct foo { > enum thing what_it_is; > union bar b; > } > > foo.what_it_is describes what is in the union b, it could have values > DOUBLE or INT for example. > > It's only worth making this a union if we need the space. If we don't > then we could use: > > struct foo { > enum thing what_it_is; > int x; > double y; > char *z; > } > > Which is simpler and easier to check. Why do you think that? FWIW, I would generally use an "unnamed" (not sure if that is the correct term) union type declared inside the struct: struct foo { enum thing what_it_is; union { int x; /* etc */ } b; }; Alex .