#include <stdio.h>
#include <stdint.h>
union U
{
uint32_t u32;
uint16_t u16[3];
uint8_t u8;
} u = {10000002};
int main(void)
{
printf("Union size: %lu\n", sizeof u);
printf("u32: %llu\n", u.u32);
printf("u16[1]: %u\n", u.u16[1]);
printf("u8: %u\n\n", u.u8);
u.u16[1] = 200;
printf("Union size: %lu\n", sizeof u);
printf("u32: %llu\n", u.u32);
printf("u16[1]: %u\n", u.u16[1]);
printf("u8: %u\n\n", u.u8);
u.u8 = 21;
printf("Union size: %lu\n", sizeof u);
printf("u32: %llu\n", u.u32);
printf("u16[1]: %u\n", u.u16[1]);
printf("u8: %u\n", u.u8);
return 0;
}
/*
run:
Union size: 8
u32: 10000002
u16[1]: 152
u8: 130
Union size: 8
u32: 13145730
u16[1]: 200
u8: 130
Union size: 8
u32: 13145621
u16[1]: 200
u8: 21
*/