A union is a struct where all the members occupy the same memory. The size of such a type is the size of the largest member. Since a union can only hold one item of data, it is a mechanism to interpret the data in more than one way.
An example of a union is in the VARIANT type that is used to pass data between Object Linking and Embedding (OLE) objects in Microsoft's Component Object Model (COM). The VARIANT type can hold data of any of the data types that COM is able to transmit between OLE objects. Sometimes OLE objects will be in the same process, but it is possible for them to be in different processes on the same machine or on different machines. COM guarantees that it can transmit VARIANT ...