大端、小端

大端:数据的高字节存放在低地址处,数据的低字节存放在高地址处。
小端:数据的低字节存放在低地址处,数据的高字节存放在高地址处。

联合体

联合体开辟内存法规则是:选取联合体成员变量中,占用内存最大的内存大小,比如联合体内有int char ,float 类型变量,则开辟int型大小的空间。并且这些成员共用这一内存。

利用联合体特性,判断大小端

typedef union {
	int a;
	char b;
}UN;

int main(){
	
	UN u;
	u.a = 1;
	if(u.b == 1) printf("小端存储\n");
	else printf("大端存储\n");
	return 0;
	
}

分析:

u.a = 0x00000001;
若小端存储形式:
	-------------------->地址减方向
	00 00 00 01
	则 b = 01;

若大端存储形式:
	-------------------->地址减方向
	01 00 00 00
	则 b = 0;

所以当u.b=1时为小端存储,u.b=0时为大端存储。


版权声明:本文为weixin_43952192原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43952192/article/details/108358708