大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。也就是高低高低对应关系,即data的低相位对应memory的高址。
小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。也就是高高低低。
因为 Union 的特性是同一时刻只有一个成员有效,且所有的成员有一个相同的开始地址。存取都是相对于这个联合体起始地址的偏移量为0的地方开始,就是联合体的访问不论对哪个变量的存取都是从 union 的首地址位置开始,所以测试如下:
#include
int endian(void)
{
union uni
{
int i;
char c;
}test;
test.i = 1;
return (test.c == 1);
}
int main(int argc, char *argv[])
{
if (endian())
{
printf("Little endian.\n");
}
else
{
printf("Little endian.\n");
}
return 0;
}
阅读(2650) | 评论(0) | 转发(1) |