I have this code
union u_value {
int i_value;
long l_value;
float f_value;
double d_value;
char *cp_value;
int type;
};
union u_value create_int_value(int value) {
union u_value val;
val.i_value = value;
val.type = INT;
printf("Inside: %d, %d\n", value, val.i_value);
return val;
}
The problem is that I can't set values inside union.
For example:
union u_value val = create_int_value(123);
printf("%d\n", val.i_value);
will print 0
What am I doing wrong?