📄 u64_pub.h
字号:
#ifdef __cplusplusextern "C"{#endif #ifndef __INC_U64_PUB_H__#define __INC_U64_PUB_H__#define AOS_U64_HIGH( pU64 ) ((pU64)->ulHigh)#define AOS_U64_LOW( pU64 ) ((pU64)->ulLow)#define AOS_U64_SET( pU64, H, L )\\do{\ (pU64)->ulHigh = H;\ (pU64)->ulLow = L;\}while(0)#define AOS_U64_ZERO( pU64, H, L )\\do{\ (pU64)->ulHigh = 0;\ (pU64)->ulLow = 0;\}while(0)#define AOS_U64_INC( pU64 )\\do{\ if( 0 == ++ (pU64)->ulLow )\ {\ (pU64)->ulHigh++;\ }\}while(0)#define AOS_U64_DEC( pU64 )\\do{\ if( 0 == (pU64)->ulLow-- )\ {\ (pU64)->ulHigh--;\ }\}while(0)#define AOS_U64_ADD32( pU64, I )\\do{\ (pU64)->ulLow += I;\ if( (pU64)->ulLow < (I) )\ {\ (pU64)->ulHigh++;\ }\}while(0)#define AOS_U64_SUB32( pU64, I )\\do{\ if( (pU64)->ulLow < (I) )\ {\ (pU64)->ulHigh--;\ }\ (pU64)->ulLow -= I;\}while(0)#define AOS_U64_ADD64( pU64_N, pU64_M )\\do{\ (pU64_N)->ulLow += (pU64_M)->ulLow;\ (pU64_N)->ulHigh += (pU64_M)->ulHigh;\ if( (pU64_N)->ulLow < (pU64_M)->ulLow )\ {\ (pU64_N)->ulHigh++;\ }\}while(0)#define AOS_U64_SUB64( pU64_N, pU64_M )\\do{\ (pU64_N)->ulHigh -= (pU64_M)->ulHigh;\ if( (pU64_N)->ulLow < (pU64_M)->ulLow )\ {\ (pU64_N)->ulHigh--;\ }\ (pU64_N)->ulLow -= (pU64_M)->ulLow;\}while(0)#define AOS_U64_COPY( pU64_N, pU64_M )\\do{\ (pU64_N)->ulHigh = (pU64_M)->ulHigh;\ (pU64_N)->ulLow = (pU64_M)->ulLow;\}while(0)#define AOS_U64_COMPARE( pU64_N, pU64_M )\(((pU64_N)->ulHigh == (pU64_M)->ulHigh) ? \ (((pU64_N)->ulLow == (pU64_M)->ulLow) ? (0) : (((pU64_N)->ulLow > (pU64_M)->ulLow) ? (1) : (-1))) : \ (((pU64_N)->ulHigh > (pU64_M)->ulHigh) ? (1) : (-1)))#define AOS_U64_LSH( pU64_N )\\do{\ (pU64_N)->ulHigh <<= 1;\ if( 0x80000000 & (pU64_N)->ulLow )\ {\ (pU64_N)->ulHigh |= 0x1;\ }\ (pU64_N)->ulLow <<= 0x1;\}while(0)#define AOS_U64_RSH( pU64_N )\\do{\ (pU64_N)->ulLow >>= 1;\ if( 0x1 & (pU64_N)->ulHigh )\ {\ (pU64_N)->ulLow |= 0x80000000;\ }\ (pU64_N)->ulHigh >>= 1;\}while(0)#define AOS_U64_MUL32( pU64_N, I ) aos_u64_mul32(pU64_N, I)#define AOS_U64_DIV32( pU64_N, I ) aos_u64_div32(pU64_N, I)#define AOS_U64_DIV32REVISE( pU64_N, I, pulRes ) aos_u64_div32revise(pU64_N, I, pulRes)#define AOS_U64_DIV64( pU64_N, pU64_M ) aos_u64_div64(pU64_N, pU64_M)U32 aos_u64_mul32( U64 *pU64, U32 u32bit );U32 aos_u64_div32( U64 *pU64, U32 u32bit );U32 aos_u64_div32revise( U64 *pU64, U32 u32bit, U32*pulReviseVal );U32 aos_u64_div64( U64 *pU64_N, U64 *pU64_M );#endif#ifdef __cplusplus}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -