Unions in C
A union is a type that enables you to store different data types in the same memory space (but not simultaneously). A typical use is a table designed to hold a mixture of types in some order that is neither regular nor known in advance. By using an array of unions, you can create an array of equal-sized units, each of which can hold a variety of data types.
Unions are set up in much the same way as structures. There is a union template and a union variable. They can be defined in one step or, by using a union tag, in two. Here is an example of a union template with a tag:
union hold { int digit; double bigfl; char letter; };
A structure with a similar declaration would be able to hold an int value and a double value and a char value. This union, however, can hold an int value or a double value or a char value.
Example
#include <stdio.h> int main() { union book { char name[25]; char author[25]; int callno; }; union book b1 = { "The C book", "ABC", 2101 }; printf("\n%s %s %d", b1.name, b1.author, b1.callno); getchar(); return 0; }