c – “布尔短路”是由标准规定还是主要用作优化?

c – “布尔短路”是由标准规定还是主要用作优化?,第1张

概述考虑一下 Class* p = NULL;if( p != NULL && p->Method() == OK ){ // stuff} 在我使用的所有编译器上,这是非常安全的.即布尔表达式的第一部分将计算为false,因此不会尝试调用Method(),因为评估第二部分是多余的. 这是因为大多数编译器会优化第二部分的评估,还是来自C/C++标准的口述行为? 这称为布尔短路,并定义为多种语 考虑一下

Class* p = NulL;if( p != NulL && p->Method() == OK ){  // stuff}

在我使用的所有编译器上,这是非常安全的.即布尔表达式的第一部分将计算为false,因此不会尝试调用Method(),因为评估第二部分是多余的.

这是因为大多数编译器会优化第二部分的评估,还是来自C/C++标准的口述行为?

解决方法 这称为布尔短路,并定义为多种语言. Here是维基百科文章,描述了哪些语言具有此功能.

既然您知道该功能的正确名称,那么它也有other SO articles.

总结

以上是内存溢出为你收集整理的c – “布尔短路”是由标准规定还是主要用作优化?全部内容,希望文章能够帮你解决c – “布尔短路”是由标准规定还是主要用作优化?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1222126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存