The following example defines a union data type (not named) and a union variable (named length). The member of length can be a long int, a float, or a double.
union { float meters; double centimeters; long inches; } length;
The following example defines the union type data as containing one member. The member can be named charctr, whole, or real. The second statement defines two data type variables: input and output.
union data { char charctr; int whole; float real; }; union data input, output;
The following statement assigns a character to input:
input.charctr = 'h';
The following statement assigns a floating-point number to member output:
output.real = 9.2;
The following example defines an array of structures named records. Each element of records contains three members: the integer id_num, the integer type_of_input, and the union variable input, which has the union data type defined in the previous example.
struct { int id_num; int type_of_input; union data input; } records[10];
The following statement assigns a character to the structure member input of the first element of records:
records[0].input.charctr = 'g';