- 分支预测优化
!! 对宏的参数 x 做两次取非操作,这是为了将参数 x 转换为布尔类型
#if __GNUC__ >= 3 #define likely(x) (__builtin_expect(!!(x), 1)) #define unlikely(x) (__builtin_expect(!!(x), 0)) #else #define likely(x) (x) #define unlikely(x) (x) #endif
- 计数1的个数
__builtin_popcount(x);//x中1的个数 //unsigned int x