摘要:
在linux内核源码或一些比较成熟的c语言架构源码中,我们常会见到类似下面的代码:1 if (unlikely(!packet)) {2 return res_failed; 3 }4 5 // OR6 7 if (likely(packet->type = HTTP)) {8 do_something();9 }有的地方可能会用大写,LIKELY() / UNLIKELY(),意思一样。然后我们看一下unlikely和likely的定义,大部分都是类似如下的宏定义:1 #define likely(x) __builtin_expect(!!(x), 1) 2 #d... 阅读全文