大端、小端
大端:数据的高字节存放在低地址处,数据的低字节存放在高地址处。
小端:数据的低字节存放在低地址处,数据的高字节存放在高地址处。
联合体
联合体开辟内存法规则是:选取联合体成员变量中,占用内存最大的内存大小,比如联合体内有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 版权协议,转载请附上原文出处链接和本声明。