book@100ask:~/C_coding/CH02$ cat union.c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main()
{
uint32_t i = 0x11223344;
printf("%x\n",(i >> 16) + i & 0xFFFF); //實現高8位與低8位求和
exit(0);
}
book@100ask:~/C_coding/CH02$ make union
cc union.c -o union
book@100ask:~/C_coding/CH02$ ./union
4466
union:意味着成員變量不可共存,同時間只可有一個變量有效。
book@100ask:~/C_coding/CH02$ cat union.c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
union
{
struct
{
uint16_t i;
uint16_t j;
}x;
uint32_t y;
}a;
int main()
{
a.y = 0x11223344;
printf("%x\n",a.x.i + a.x.j);
// uint32_t i = 0x11223344;
// printf("%x\n",(i >> 16) + i & 0xFFFF);
exit(0);
}
book@100ask:~/C_coding/CH02$ make union
cc union.c -o union
book@100ask:~/C_coding/CH02$ ./union
4466