在编程时很多文章说通过计算int i= 1低位的方式来判定系统的字节序。
可是,系统已经帮我们定义了判断字节序的宏。为什么还要费这个事?
这个宏就是:__BYTE_ORDER (BYTE_ORDER也可以,因为是一样的)
下面讲解具体用法。
001:程序里一定要包含,宏是在这里定义的。
002:简单的例子:
// test.c
#include
int main(void)
{
}
003:gcc -E -dM test.c
...
#define BYTE_ORDER __BYTE_ORDER
#define __BYTE_ORDER __LITTLE_ENDIAN
#define __FLOAT_WORD_ORDER __BYTE_ORDER
...
明白了吧?__BYTE_ORDER被系统定义成了__LITTLE_ENDIAN。
所以以后我们在程序里用如下语句判断就好了:
#if __BYTE_ORDER == __LITTLE_ENDIAN
// 小头字节序
#elif __BYTE_ORDER == __BIG_ENDIAN
// 大字节序
不信?不信你到linux头文件的目录grep一下。头文件中都是这样判断的。
阅读(4080) | 评论(0) | 转发(0) |