关于union
1、union中可以定义多个成员,union的大小由最大的成员的大小决定。
2、union成员共享同一块大小的内存,一次只能使用其中的一个成员。
3、对某一个成员赋值,会覆盖其他成员的值。
4、联合体union的存放顺序是所有成员都从低地址开始存放的。
下面看一个简单的代码:
#include <stdio.h>
typedef union{
char c;
int a;
int b;
}Demo;
int main(int argc, char **argv)
{
Demo d;
d.c = 'H';
d.a = 0xf41;
d.b = 0x1f41;
printf("size: %d\n", sizeof(d));
printf("%c\t%x\t%x\n", d.c, d.a, d.b);
return 0;
}
结果:4
A 1f41 1f41
什么是大端和小端?
Big-Endian和Little-Endian的定义如下:
1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
判断大端模式和小端模式:
代码:
#include <stdio.h>
int main()
{
}
转载及参考:http://blog.163.com/yx_xie2007/blog/static/1024642532011101411940162/