gcc 内建函数

  • 分支预测优化

!! 对宏的参数 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

 

posted @ 2021-01-21 18:33  Ray.floyd  阅读(87)  评论(0编辑  收藏  举报