Variables in functions ... What is best?

"A union may be thought of as a structure all of whose members begin at offset 0 and whose size is sufficient to contain any of its members. At most one of the members can be stored in a union at any time."

So:

union myunion {
int var_a;
int var_b;
float var_c;
} uval;

will allow (actually, force) vars var_a, var_b and var_c to share the same memory address.

uval.var_a and uval.var_b will be typed as ints, while uval.var_c will be typed as a float.

Sometimes you just gotta tell the compiler who's boss!