C语言基础 -55 构造类型_共用体的嵌套定义及位域问题

book@100ask:~/C_coding/CH02$ cat union.c
#include 
#include 
#include 

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 
#include 
#include 

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

你可能感兴趣的:(Linux,C编程)