分支声明
对于条件选择语句,gcc内建了一条指令用于优化,在一个条件经常出现,或者该条件很少出现的时候,编译器可以根据这条指令对条件分支选择进行优化。内核把这条指令封装成了宏,比如likely()和unlikely(),这样使用起来比较方便。
例如,下面是一个条件选择语句:
if (foo) {
/* .. */
}
如果想要把这个选择标记成绝少发生的分支:
/* 我们认为foo绝大多数时间都会为0.. */
if (unlikely(foo)) {
/* .. */
}
相反,如果我们想把一个分支标记为通常为真的选择:
/* 我们认为foo通常都不会为0 */
if (likely(foo)) {
/* .. */
}
linux中的likely和unlikely...
最新推荐文章于 2024-12-30 19:08:54 发布
本文介绍GCC编译器中用于优化条件分支的宏likely()和unlikely()。通过这两个宏可以告诉编译器某个条件分支更可能被执行,从而提高程序运行效率。
429

被折叠的 条评论
为什么被折叠?



