likely(x)与unlikely(x)函数,即__builtin_expect的使用(转)

如何使用?

在一个条件判断语句中,当这个条件被认为是非常非常有可能满足时,则使用likely()宏,否则,条件非常非常不可能或很难满足时,则使用unlikely()宏。

主要用于 编译优化,对程序 没影响。

点击打开链接

更多GCC内置宏或函数,详见:http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html

__builtin_expect是GCC编译器提供给程序员使用的一个指令,用于提供分支移的信息给编译器,以便进行代码优化,减少指令跳带来的性能下降。\[3\]一般使用的方法是将__builtin_expect指令封装为likelyunlikely宏,用于表示某个条件的可能性更大或更小。例如,likely(x)表示x的值为真的可能性更大,而unlikely(x)表示x的值为假的可能性更大。\[2\]通过在代码中使用likelyunlikely宏,编译器可以在编译过程中将可能性更大的代码紧跟在前面的代码,从而减少指令跳带来的性能下降。\[3\]这样的优化可以提高程序的执行效率。 #### 引用[.reference_title] - *1* [__builtin_xxx指令学习【1】__builtin_expect](https://blog.youkuaiyun.com/qq_42604176/article/details/130031135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【编程基础の基础】__builtin_expect详解(汇编级解释)](https://blog.youkuaiyun.com/weixin_42157432/article/details/115805804)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值