Linux大小端判断

名称解释:

【大端模式】 CPU对操作数的存放方式是高地址存放低位,低地址存放高位。

【小端模式】CPU对操作数的存放方式是高地址存放高位,低地址存放低位。

大多数ARM处理器都是采用的小端模式,PowerPC是采用的大端模式,网络字节序是采用的大端模式。


Linux内核代码向来以简洁高效著称,大小端的判断也是尤为简洁,令人印象深刻:

位于kernel/arch/arm/kernel/setup.c中:

static union { 
    char c[4]; 
    unsigned long l; 
} endian_test __initdata = { { 'l', '?', '?', 'b' } };

#define ENDIANNESS ((char)endian_test.l)

简单几行代码,就可以用来测试当前系统是大端还是小端模式:

if ( 'b' == ENDIANNESS

      printf(" it's big endian");

else

      printf("it's little endian");

发布了3 篇原创文章 · 获赞 0 · 访问量 3252
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览