QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1077|回复: 4

如何用C语言测试机器的字节序

[复制链接]
发表于 2004-3-9 11:35:11 | 显示全部楼层 |阅读模式
如题 谢谢
发表于 2004-3-9 13:22:59 | 显示全部楼层
什么叫字节序?

你是不是指Character在Character set里的顺序? 无论是ASCII还是EBCDIC, 它们的顺序都是固定的.
回复

使用道具 举报

 楼主| 发表于 2004-3-9 13:52:31 | 显示全部楼层
就是测试是big-endian还是litter-endian
如果堆栈向下增长,一个字的数据是现存放高字节还是先存放低字节
回复

使用道具 举报

发表于 2004-3-9 22:39:50 | 显示全部楼层
使用gdb调试就可以,查看内存内内容
回复

使用道具 举报

发表于 2004-3-9 23:12:23 | 显示全部楼层
以下代码引自C A Reference Manual----Samuel P.Harbison III ,Guy L. Stelle Jr, P184(略有改动)请引用时尊重上述作者权益。

[code:1]
#include <stdio.h>

union{
    long Long;
    char Char[sizeof(long)];
}u;

int main(void)
{
    u.Long = 1;
    if (u.Char[0] == 1)
       printf("Little-endian\n");
    else if (u.Char[sizeof(long)-1] == 1)
       printf("Big-enian\n");
    else printf("Strange\n");
    return 0;
}
[/code:1]

另一个方法见Unix Network Programming---W.Richard Stevens P67
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 21:01 , Processed in 0.068400 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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