LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1136|回复: 5

如何编一个c程序测试机器的字节序

[复制链接]
发表于 2004-3-9 11:04:35 | 显示全部楼层 |阅读模式
如题 谢谢
发表于 2004-3-9 11:47:31 | 显示全部楼层
什么是字节序?
发表于 2004-3-9 12:57:42 | 显示全部楼层
typedef union
{
        char c[4];
        int i;
} test;

int main(int argc, char* argv[])
{
        printf("Hello World!\n");
        test a;
        a.c[0]=1;
        a.c[1]=0;
        a.c[2]=0;
        a.c[3]=0;
        printf("%d\n",a.i);
        return 0;
}
看看输出的a.i值就知道了
发表于 2004-3-9 13:24:44 | 显示全部楼层
上面的程序会和编译器有关吗?
发表于 2004-3-9 13:29:26 | 显示全部楼层
最初由 777 发表
上面的程序会和编译器有关吗?

和处理器有关
不同的处理器的字节序是不一样的,
intel x86处理器的字节序是低位在低位,高位在高位
所以a.i=0x00000001
但有些处理器是倒回来的,所以a.i=0x01000000
 楼主| 发表于 2004-3-9 13:49:06 | 显示全部楼层
very thanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表