求问下边这个宏定义有什么用途。。。。高分求解
#define tdr_os_swap64(x) \
((((x) & (unsigned __int64)0xff00000000000000) >> 56) \
| (((x) & (unsigned __int64)0x00ff000000000000) >> 40) \
| (((x) & (unsigned __int64)0x0000ff0000000000) >> 24) \
| (((x) & (unsigned __int64)0x000000ff00000000) >> 8) \
| (((x) & (unsigned __int64)0x00000000ff000000) << 8) \
| (((x) & (unsigned __int64)0x0000000000ff0000) << 24) \
| (((x) & (unsigned __int64)0x000000000000ff00) << 40) \
| (((x) & (unsigned __int64)0x00000000000000ff) << 56))
#define tdr_os_swap32(x) \
((((x) & 0xff000000) >> 24) \
| (((x) & 0x00ff0000) >> 8) \
| (((x) & 0x0000ff00) << 8) \
| (((x) & 0x000000ff) << 24))
#define tdr_os_swap16(x) \
((((x) & 0xff00) >> 8) \
| (((x) & 0x00ff) << 8))
[解决办法]
大小端的字序用的
[解决办法]
看命名就知道啦是一个交换作用的宏,64 32 16什么的一看就是bit的单元,这三个宏形式是差不多的,所以看16那个就ok了,因为代码最少,你看懂了最后一个宏是什么意思就ok了,实在不行自己举个例子,然后上面两个同理
[解决办法]
交换字节顺序,例如x=0x12345678交换顺序变成x=0x78563412。