Linux大小端判断

来源:互联网 发布:现代单片机的发展趋势 编辑:程序博客网 时间:2024/03/29 18:41

名称解释:

【大端模式】 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");

1 0
原创粉丝点击