Is exactly the same as a C Struct except the offset of each member is 0 from the beginning of the memory space of the union. This means that every member occupies the same space! A consequence of this is that you can only have one member occupy that space at a time. Unions may not be compared.
Example
struct athlete { char name[20]; int jerseynum; char team[20]; int player_type; union sportspecific { struct footballer {...} footballstats; struct baseballer {...} baseballstats; struct basketballer {...} basketballstats; } thesport; } theplayer;
This organization allows for pseudopolymorphic behavior