用宏判断计算机处理器是大端字节序(Big-Endian)还是小端字节序(Little-Endian)

用宏判断计算机处理器是大端字节序(Big-Endian)还是小端字节序(Little-Endian),第1张

实现同样的功能,我们来看看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

不同机器内部对变量的字节存储顺序不同,有的采用大端模式(big-endian),有的采用小端模式(little-endian)。 大端模式是指高字节数据存放在低地址处,低字节数据放在高地址处。 小端模式是指低字节数据存放在低地址处,高字节数据放在高地址处。...


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/5899787.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-07
下一篇2023-03-07

发表评论

登录后才能评论

评论列表(0条)

    保存