__builtin_expect说明
GCC提供了一系列builtin函数,下面对__builtin_expect(EXP, N)函数进行说明。
__builtin_expect(EXP, N)说明 EXP == N的概率很大。
likely\unlikely
在linux中likely()和unlikely一般都是封装__builtin_expect来实现
/* 去两次!个人认为是为了更好的和0或者1进行比较 */
#define likely(exp) __builtin_expect(!!(exp), 1)
#define unlikely(exp) __builtin_expect(!!(exp), 0)
int x = 1, y;
if