gpt4 book ai didi

java - 编译器优化: will double checking a case cause removal?

转载 作者:行者123 更新时间:2023-12-02 06:30:28 25 4
gpt4 key购买 nike

当我编写 BST 查找函数时:

public static boolean find(Node root, int value){
if(root == null){
return false;
}
Node iter = root;

while(iter != null){
.....
}
return false;
}

编译器会删除

if(root == null){
return false;
}

或者没有。因为我无论如何都会在 while 循环中检查条件。

谢谢。

ps。我刚刚意识到,我是按值传递的,所以不需要 iter Node..太多的 C

最佳答案

这取决于您的优化。如果您进行了全面优化,并且编译器可以证明删除初始 if 不会更改函数的输出,那么它可能会删除它。

在您提供的确切代码示例中,我敢说编译器确实可以优化第一个 ifaway。

关于java - 编译器优化: will double checking a case cause removal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108012/

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