__builtin_expect 主要用于 if 判断语句中,功能是让程序员告诉编译器,哪一个分支最有可能执行。
一般使用方法是将 __builtin_expect
指令封装为 likely
和 unlikely
宏。这两个宏的写法如下:
#define likely(x) __builtin_expect(!!(x), 1) // x 很可能为真
#define unlikely(x) __builtin_expect(!!(x), 0) // x 很可能为假
(SAW:Game Over!)