1、大端模式:高字节保存在内存的低地址
2、小端模式:高字节保存在内存的高地址
举例:
#include <stdio.h>
int main()
{
typedef union{
int a;
char b;
}UN_TEST; /* 定义一个联合体数据类型 */
UN_TEST d;
d.a = 1;
if(d.b == 1)
{
printf("Little Endian\n");
}
else
{
printf("Big Endian\n");
}
return 0;
}
因为联合结构中的变量共用一块存储空间,所以a和b拥有同一个地址:
对本例中的联合结构,我们对它求sizeof(UN_TEST),会发现它的大小为4,取了int 的大小。
关于union,它里边的变量共用一块存储空间,但是它的大小并不总是其中最大的变量所占的空间,还需要考虑对齐!
比如:
union test1 {
char[5];
int i;
}
它的大小就是 8 了!