Little_Endian
在程序传输的过程中,为了保持平台的兼容性(字节存储顺序),可以定义下面的宏函数,进行处理。
#ifdef LITTLE_ENDIAN_HOST
#define Swap16IfLE(s) \((CARD16) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)))
#define Swap32IfLE(l) \
((CARD32) ((((l) & 0xff000000) >> 24) | \
(((l) & 0x00ff0000) >> 8) | \
(((l) & 0x0000ff00) << 8) | \
(((l) & 0x000000ff) << 24)))
#else
#define Swap16IfLE(s) (s)
#define Swap32IfLE(l) (l)
#endif// unconditional swaps
#define Swap16(s) \
((CARD16) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)))
#define Swap32(l) \
((CARD32) ((((l) & 0xff000000) >> 24) | \
(((l) & 0x00ff0000) >> 8) | \
(((l) & 0x0000ff00) << 8) | \
(((l) & 0x000000ff) << 24)))
#endif