union valor_numerico_t { int entero; double flotante; }; void foo(void) { valor_numerico_t valor; // Se puede acceder a su valor como entero valor.entero = 1; // O como double valor.flotante = 3.14; }