共用体(联合体)

共用体(联合体)
#include 

union Test
{
	unsigned char a;
	unsigned short b;
	unsigned int c;
};

int main(int argc, char const *argv[])
{
	//1、结构体的大小可以简单认为成员大小的累加
	//2、共用体的大小为最大成员的大小
	printf("%lu\n", sizeof(union Test));

	//3、共用体公用一块内存,所有成员的地址都一样
	union Test obj;
	printf("%p, %p, %p, %p\n", &obj, &obj.a, &obj.b, &obj.c);
	
	//4、给某个成员赋值,会影响到另外的成员
	//左边是高位,右边是地位
	//高位放高地址,低位放低地址(小端)
	obj.c = ox44332211;
	printf("obj.c = %x\n", obj.c);
	printf("obj.a = %x\n", obj.a);
	printf("obj.b = %x\n", obj.b);
	
	return 0;
}

共用体(联合体)_第1张图片

你可能感兴趣的:(C语言基础知识)