宏定义
来源:互联网 发布:c .net数据库编程 编辑:程序博客网 时间:2024/05/20 05:30
/* Reverse the bytes in a 16-bit value */#define BITSWAP16(val) \((uint16)((((uint16)(val) & (uint16)0x00ffU) << 8) | \ (((uint16)(val) & (uint16)0xff00U) >> 8)))/* Reverse the bytes in a 32-bit value */#define BITSWAP32(val) \((uint32)((((uint32)(val) & (uint32)0x000000ffU) << 24) | \ (((uint32)(val) & (uint32)0x0000ff00U) << 8) | \ (((uint32)(val) & (uint32)0x00ff0000U) >> 8) | \ (((uint32)(val) & (uint32)0xff000000U) >> 24)))/* Reverse the two 16-bit halves of a 32-bit value */#define BITSWAP32BY16(val) \((uint32)((((uint32)(val) & (uint32)0x0000ffffU) << 16) | \ (((uint32)(val) & (uint32)0xffff0000U) >> 16)))/* Reverse the bytes in a 64-bit value */#define BITSWAP64(val) \((uint64)((((uint64)(val) & 0x00000000000000ffULL) << 56) | \ (((uint64)(val) & 0x000000000000ff00ULL) << 40) | \ (((uint64)(val) & 0x0000000000ff0000ULL) << 24) | \ (((uint64)(val) & 0x00000000ff000000ULL) << 8) | \ (((uint64)(val) & 0x000000ff00000000ULL) >> 8) | \ (((uint64)(val) & 0x0000ff0000000000ULL) >> 24) | \ (((uint64)(val) & 0x00ff000000000000ULL) >> 40) | \ (((uint64)(val) & 0xff00000000000000ULL) >> 56)))/* Reverse the two 32-bit halves of a 64-bit value */#define BITSWAP64BY32(val) \((uint64)((((uint64)(val) & 0x00000000ffffffffULL) << 32) | \ (((uint64)(val) & 0xffffffff00000000ULL) >> 32)))#ifndef hton16#ifndef IL_BIGENDIAN#define HTON16(i) BITSWAP16(i)#definehton16(i) BITswap16(i)#defineHTON32(i) BITSWAP32(i)#definehton32(i) BITswap32(i)#defineNTOH16(i) BITSWAP16(i)#definentoh16(i) BITswap16(i)#defineNTOH32(i) BITSWAP32(i)#definentoh32(i) BITswap32(i)#define LTOH16(i) (i)#define ltoh16(i) (i)#define LTOH32(i) (i)#define ltoh32(i) (i)#define HTOL16(i) (i)#define htol16(i) (i)#define HTOL32(i) (i)#define htol32(i) (i)#define HTOL64(i) (i)#define htol64(i) (i)#else /* IL_BIGENDIAN */#define HTON16(i) (i)#definehton16(i) (i)#defineHTON32(i) (i)#definehton32(i) (i)#defineNTOH16(i) (i)#definentoh16(i) (i)#defineNTOH32(i) (i)#definentoh32(i) (i)#defineLTOH16(i) BITSWAP16(i)#defineltoh16(i) BITswap16(i)#defineLTOH32(i) BITSWAP32(i)#defineltoh32(i) BITswap32(i)#define HTOL16(i) BITSWAP16(i)#define htol16(i) BITswap16(i)#define HTOL32(i) BITSWAP32(i)#define htol32(i) BITswap32(i)#define HTOL64(i) BITSWAP64(i)#define htol64(i) BITswap64(i)#endif /* IL_BIGENDIAN */#endif /* hton16 */
0 0
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义,#,##
- 宏定义
- 宏定义
- 宏定义
- 10 分钟为你的 App 加入实时通讯功能
- Java高级工程师面试题目汇集(关于Struts,Spring,Hibernate三大框架的面试)
- 构造模式实践
- CodeForces 510B Fox And Two Dots(图论-回路判定)
- IOS相关书签
- 宏定义
- RecyclerView的基本用法 (二)
- Spring BlazeDS Integration之spring security(4)---自定义rememberMeServices,找到自动登陆成功切入点
- 三十而立,从零开始学ios开发
- Vitamio 3.0 新手教程
- Source Insight 使用方法入门
- MTK6577---camera驱动分析
- Swift之键盘事件
- mysql 优化