判断big-endian与little-endian示例

时间 : 16-01-26 栏目 : linux编程 作者 : 老薛 评论 : 0 点击 : 1,266 次

#include <stdio.h>

int is_little_endian(void)
{
    unsigned short flag=0x4321;

    if(*(unsigned char*)&flag==0x21)
        return 1;
    else
        return 0;
}

int main(void)
{
    union endian_un{
        short var;
        char bits[sizeof(short)];
    };

    union endian_un flag;

    flag.var=0x0102;

    if(sizeof(short)==2){
        if(flag.bits[0]==1 && flag.bits[1]==2)
            printf("judged by first method, big-endian\n");
        else if(flag.bits[0]==2 && flag.bits[1]==1)
            printf("judged by first method, little-endian\n");
        else
            printf("cannot determine the type\n");
    }

    if(is_little_endian())
        printf("judged by second method, little-endian\n");
    else
        printf("judged by second method, big-endian\n");

    return 0;
}

本文标签

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw003/1158.html

判断big-endian与little-endian示例:等您坐沙发呢!

发表评论

3 + 0 = ?


博主微信号,很高兴为您提供帮助

随便看看

为您推荐

0