#include <stdio.h>
#include <string.h>
#include <stdbool.h>
typedef struct TEST {
bool b;
union {
long n;
char s[12];
float f;
};
} TEST;
int main() {
TEST t;
printf("size: %d\n\n", sizeof(t));
t.b = true;
t.n = 8493;
printf("(set)t.b:%s\n", t.b ? "true" : "false");
printf("(set)t.n: %d\n", t.n);
printf("t.s: %s\n", t.s);
printf("t.f: %f\n", t.f);
printf("size: %d\n\n", sizeof(t));
strcpy(t.s, "c union");
printf("(set)t.b:%s\n", t.b ? "true" : "false");
printf("t.n: %d\n", t.n);
printf("(set)t.s: %s\n", t.s);
printf("t.f: %f\n", t.f);
printf("size: %d\n\n", sizeof(t));
t.f = 3.14;
printf("(set)t.b:%s\n", t.b ? "true" : "false");
printf("t.n: %d\n", t.n);
printf("t.s: %s\n", t.s);
printf("(set)t.f: %f\n", t.f);
printf("size: %d\n\n", sizeof(t));
return 0;
}
/*
run:
size: 24
(set)t.b:true
(set)t.n: 8493
t.s: -!
t.f: 0.000000
size: 24
(set)t.b:true
t.n: 1853169763
(set)t.s: c union
t.f: 18965745136684753516509528064.000000
size: 24
(set)t.b:true
t.n: 1078523331
t.s: ��H@ion
(set)t.f: 3.140000
size: 24
*/