【问题标题】:What's the point of if(true)? c++如果(真)有什么意义? C++
【发布时间】:2015-12-03 09:05:25
【问题描述】:

我见过if(true)用过很多次。

int a = 10;
if(true){
    int b = 20;
}
int c = 15;

我不明白将 if(true) 放在那里有什么意义。它是否总是评估为真,意味着它总是执行?它不是函数的一部分。它就在那里。和内存分配有关系吗?

【问题讨论】:

  • 也许这是在尝试创建一个有限的范围。虽然只能使用大括号。
  • 在任何半体面的版本编译中,这将被优化掉。留下曾经有一些真实逻辑但被非逻辑替换的旧代码可能是一种坏习惯。
  • 范围限制器是一个很好的可能性,但也可能是一个快速调试开/关黑客。没有上下文谁知道?
  • 如果您好心,请澄清一下:您说这不是函数的一部分。你能告诉我们更多关于它的一部分吗?随意简化和删除任何非公共消费类和命名空间名称。
  • 不要假设所有代码都有意义。有时人们会做蠢事、懒惰、休息日等等。

标签: c++ boolean


【解决方案1】:

这相当于:

{
    int b = 20;
}

也许有人在使用if (false),然后切换到if (true)if(false) 实际上很有意义,因为您正在删除一些代码 - 它不应该进入已编译的 exe,但它会被编译器编译 - 并检查是否有任何错误。

【讨论】:

  • 是的,函数开头的 if(false) 带有标签,您以后可以跳转到以进行恢复是一种有用的模式。
【解决方案2】:

如果一个人在摆弄代码,很容易转向

if (true) {
    // block of code
}

进入

if (false) {
    // block of code
}

因此,如果您经常需要打开/关闭代码块,这是一个有用的结构。它也可以是未来更改的占位符,其中布尔值替换为(模板)参数或全局常量等。 (或从以前的更改中进行的反向保留)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-15
    • 2011-11-19
    • 2018-07-09
    • 2017-09-21
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 2011-11-08
    相关资源
    最近更新 更多