C語言基礎 -55 構造類型_共用體的嵌套定義及位域問題

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章