, , .
, - "" , . , , , . , C , , , , ... , :
union {
int integer;
float real;
} convert;
convert.real = 3.14;
printf("The float %f interpreted as an integer is %08x", convert.real, convert.integer);
, , , :
typedef enum { INTEGER = 0, REAL, BOOLEAN, STRING } ValueType;
typedef struct {
ValueType type;
union {
int integer;
float real;
char boolean;
char *string;
} x;
} Value;
, , Value. :
void value_set_integer(Value *value, int x)
{
value->type = INTEGER;
value->x.integer = x;
}
, . , , print a Value type :
void value_print(const Value *value)
{
switch(value->type)
{
case INTEGER:
printf("%d\n", value->x.integer);
break;
case REAL:
printf("%g\n", value->x.real);
break;
}
}
Java . ++, - C, . "" C, . ++ (x), .