分享

判断大端还是小端c程序

 champion_xu 2012-07-10
#include <stdio.h>
#include <stdlib.h>

int big_or_little_endian(void)
{
    union data {
        int a;
        char b;
    }d;
    d.a = 1;

    return (d.b==1);
}


int main()
{
    if(big_or_little_endian()) printf("little endian\n");
    else printf("big endian\n");


    return 0;
}
联合体union中每次只能有一个变量赋值,且其他值都被赋值为同样的值。所有数据都是从地地址开始存储,因为int存储地址范围比char大,所以当将int 类型值存储到char中时会被截断,这样可以看到是先储存低位还是高位,从而判断是低位优先(小端)还是高位优先(大端)。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多