首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求问上边这个宏定义有什么用途。高分求解

2013-01-12 
求问下边这个宏定义有什么用途。。。。高分求解#define tdr_os_swap64(x) \((((x) & (unsigned __int64)0xff00

求问下边这个宏定义有什么用途。。。。高分求解

#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。

热点排行