In C, is it possible to define a union within another union? If no, why is it not possible? Or if yes, where can it be used?
Yes, a union may contain another union:
union foo { int x; double y; union bar { char blah[10]; char *blurga; } bletch; };
I can't think of a situation where it would be useful (or even desirable), though.