likely()与unlikely()函数的作用

#define likely(x)  __builtin_expect(!!(x), 1)

也就是说明x==1是“经常发生的”或是“很可能发生的”。

所以使用likely ,执行if后面语句的可能性大些,编译器将if{}是的内容编译到前面

使用unlikely ,执行else后面语句的可能性大些,编译器将else{}里的内容编译到前面。

以上操作是有利于cpu预取,提高预取指令的正确率,因而可提高效率。

猜你喜欢

转载自blog.csdn.net/q2519008/article/details/83929064