Chinaunix首页 | 论坛 | 博客
  • 博客访问: 297397
  • 博文数量: 87
  • 博客积分: 1206
  • 博客等级: 少尉
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-16 00:12
个人简介

do the right things the right ways

文章分类

全部博文(87)

文章存档

2017年(5)

2016年(6)

2015年(1)

2012年(11)

2011年(64)

分类: C/C++

2011-03-23 16:17:10

         大端模式(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) |
给主人留下些什么吧!~~