LIKELY和UNLIKELY的一般定义如下:
#define LIKELY(x) (__builtin_expect(!!(x),1))#define UNLIKELY(x) (__builtin_expect(!!(x),0))
为什么要使用两个叹号呢?
取两次非主要是为了顺利的和0或1进行比较。