union token
{
long i;
double d;
char c;
} t;
then sizeof(union token) is the max of sizeof(long),
sizeof(double), and sizeof(c). The following code
is valid:
t.d = 3.14159; printf( "%f", t.d );but this code is undefined:
t.i = 12345; printf( "%f", t.d );