typedef struct { enum { TYPE_DOUBLE, TYPE_INT, TYPE_STRING, TYPE_OBJECT, TYPE_BOOLEAN, TYPE_NULL } type; union { double double_num; int32_t int_num; char* string_ptr; void* object_ptr; char boolean; //There is no bool type in old C } as; } value;