gpt4 book ai didi

C++性能和运算符示例

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:52 25 4
gpt4 key购买 nike

我想知道 && 运算符是否在级联庄园中工作。比较矩形碰撞检查的以下实现。

inline bool RectInRect(RECT one,RECT two){
if(one.left < two.right)
if(one.right > two.left)
if(one.top < two.bottom)
if(one.bottom > two.top)
return true;
return false;
}


inline bool RectInRect(RECT one,RECT two){
return (one.left < two.right && one.right > two.left &&
one.top < two.bottom && one.bottom > two.top);
}

这两个是相同的还是最上面的运行得更快?

最佳答案

是的,第二个版本基本上可以归结为第一个版本。运算符的相关属性是 short-circuited : 第二个操作数仅在必要时计算,也就是说,如果第一个操作数的计算结果为 true。否则,整个表达式将总是求值为false,因此无需查看第二个操作数。

对于 ||/,这种行为是有保证的并且是类似的,但是相反。

关于C++性能和运算符示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9452215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com