// Al revés: la etiqueta dice decimal, y sus bytes se usan como dirección de una cadena.
#include <stdio.h>

typedef enum { VALUE_NUMBER, VALUE_TEXT } Kind;

typedef struct {
    Kind kind;
    union {
        double number;
        const char *text;
    } as;
} Cell;

int main(void) {
    Cell v;
    v.kind = VALUE_NUMBER;
    v.as.number = 2.5;

    printf("v.as.text = %s\n", v.as.text);
    return 0;
}
