gpt4 book ai didi

c++ - 这些代码之间有区别吗

转载 作者:太空狗 更新时间:2023-10-29 23:22:33 25 4
gpt4 key购买 nike

今天我正在写代码,突然遇到了一些我一直在做的事情,却没有想过它是否有任何后遗症。

同样的事情有两种方式

if(foo != true)
{
bar ++;
}

if(foo == true)
{
}
else
{
bar ++;
}

现在我知道编译器可能会将其优化为相同的东西,但我想知道其中的区别,因为你不能总是指望它们。

我的问题是,第二个选项真的会招致某种惩罚,因为它在检查中添加了另一个命令吗?

是的,这是一个错字。

最佳答案

两者都不好。除了第二个包含拼写错误(= 而不是 ==)之外,将 bool 值与常量进行比较只是多余的。直接测试它们的值:

if (! foo) …
// Instead of
if (foo != true) …

// or

if (foo) …
// Instead of
if (foo == true) …

首先,它消除了通过拼写错误产生错误的可能性(正如您所慷慨地展示的那样)。但除此之外,它更合乎逻辑。

(但请注意,它不会更有效率。这些语句是严格等价的。)

关于c++ - 这些代码之间有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6152749/

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