gpt4 book ai didi

c++ - 三元运算符 vs if 语句 : compiler optimization

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:19 25 4
gpt4 key购买 nike

这是:

int val;  
// ...
val = (val != 0) ? otherVal : 0;

效率低于这个:

int val;
//...
if (val != 0)
val = otherVal;

?

编译器是否能够优化三元运算符?意图很明确,有没有什么办法可以将 0 实际写入内存?也许当内存映射到文件时?

我们可以假设这无关紧要吗?

编辑:重点是在满足一个条件时将变量设置为某个值。没有想要的其他分支。这就是为什么我问三元(具有应该制作拷贝的强制性 else 分支)是否会降低效率或优化。

最佳答案

Mats Petersson 的建议通常是最好的“编写最易读的变体”。但是,如果您正在尝试编写最佳速度性能代码,则需要了解有关您的计算机和处理器的更多信息。对于某些机器,第一个会运行得更快(高度流水线的处理器:没有分支,优化的三元运算符)。使用第二种形式(更简单),其他机器将运行得更快。

关于c++ - 三元运算符 vs if 语句 : compiler optimization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696599/

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