用宏判断计算机处理器是大端字节序(Big-Endian)还是小端字节序(Little-Endian)
发布网友
发布时间:2022-05-06 19:07
我来回答
共1个回答
热心网友
时间:2023-09-11 21:51
实现同样的功能,我们来看看Linux 操作系统中相关的源代码是怎么做的:
static union { char c[4]; unsigned long mylong; } endian_test = {{ 'l', '?', '?', 'b' } };
#define ENDIANNESS ((char)endian_test.mylong)
Linux 的内核作者们仅仅用一个union 变量和一个简单的宏定义就实现了一大段代码同样的功能!由以上一段代码我们可以深刻领会到Linux 源代码的精妙之处!(如果ENDIANNESS=’l’表示系统为little endian,
为’b’表示big endian )
http://blog.chinaunix.net/uid-25367385-id-188322.html
参考资料:http://blog.chinaunix.net/uid-25367385-id-188322.html