#define LIKELY(x) __builtin_expect(!!(x), 1)
__builtin_expect宏定义中为何写成!!(x)?
首先__buildin_expect(x, a)意味着很可能x==a。
然而x==2时,x也是true,但x!=1。
所以!!(x)可以保证x==true时,!!(x)==1。
[lammy@localhost test_builtin_expect]$ gcc -fprofile-arcs -O2 -c test_builtin_expec