Class* p = NulL;if( p != NulL && p->Method() == OK ){ // stuff}
在我使用的所有编译器上,这是非常安全的.即布尔表达式的第一部分将计算为false,因此不会尝试调用Method(),因为评估第二部分是多余的.
这是因为大多数编译器会优化第二部分的评估,还是来自C/C++标准的口述行为?
解决方法 这称为布尔短路,并定义为多种语言. Here是维基百科文章,描述了哪些语言具有此功能.既然您知道该功能的正确名称,那么它也有other SO articles.
总结以上是内存溢出为你收集整理的c – “布尔短路”是由标准规定还是主要用作优化?全部内容,希望文章能够帮你解决c – “布尔短路”是由标准规定还是主要用作优化?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)