sunwise123的个人空间 https://bbs.21ic.com/?912015 [收藏] [复制] [RSS]

日志

判断CPU大小端模式的经典方法

已有 2152 次阅读2017-2-4 20:23 |个人分类:嵌入式软件|系统分类:嵌入式系统

转载疯狂码者的文章。
CPU大/小端模式是指CPU存取数据的两种方式,比如要存取0x12345678(4字节),如果是小端模式,则先存取0x78(低字节),如果是大端模式,则是先存取0x12(高字节)。一般来说,x86系列CPU是小端模式,PowerPC通常是大端,单片机/ARM系列是小端模式。
而今天跟大家分享的是判断CPU大小端模式的两种经典方法,先作如下定义:

#define LITTLE_ENDIAN  0

#define BIG_ENDIAN       1

typedef unsigned char BYTE;

方法一:
判断CPU大小端模式的两种经典方法
int CheckEndian(void)
{
        unsigned  int  num,  *p;
        p  =  #
        num = 0;
        *(BYTE *)p  = 0xFF;
        if(num == 0xFF)
                return  LITTLE_ENDIAN;
        else
                return  BIG_ENDIAN;
}

方法二:
判断CPU大小端模式的两种经典方法
int CheckEndian(void)
{
        union  w;
        {
                int    a;
                char  b;
}c;
c.a  = 1;
if(c.b  ==  1)
return  LITTLE_ENDIAN;
else
return  BIG_ENDIAN;
}



路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)