Node:Declaration of unions, Next:Using unions, Previous:union, Up:union
A union is declared in the same way as a structure. It has a list
of members, as in the example below:
union int_or_float { int int_member; float float_member; };
Declaring union variables is similar to declaring structure variables:
union int_or_float my_union1, my_union2;
Just like structures, the members of unions can be accessed with the
.
and ->
operators. However, unlike structures, the
variables my_union1
and my_union2
above can be treated as
either integers or floating-point variables at different times during
the program. For example, if you write my_union1.int_member =
5;
, then the program sees my_union1
as being an integer. (This
is only a manner of speaking. However, my_union1
by itself does
not have a value; only its members have values.) On the other hand, if
you then type my_union1.float_member = 7.7;
, the my_union
variable loses its integer value. It is crucial to remember that a
union variable can only have one type at the same time.