他们在include/linux/compiler.h中定义
1 # ifndef likely 2 # define likely(x) (__branch_check__(x, 1, __builtin_constant_p(x))) 3 # endif 4 # ifndef unlikely 5 # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) 6 # endif
__builtin_constant_p 是编译器gcc内置函数,用于判断一个值是否为编译时常量,如果是常数,函数返回1 ,否则返回0。此内置函数的典型用法是在宏中用于手动编译时优化。