在if语句中处理布尔函数

cod*_*der 3 c++ if-statement boolean

我已经掌握了一些代码,我在那里看到了好奇的东西:

if (true == someFuncThatReturnsBool())
{
   // Do somthing
}

bool someFuncThatReturnsBool()
{
    bool retVal = false;
    // .... do some stuff

    return retVal;
}
Run Code Online (Sandbox Code Playgroud)

在"if"语句中,它们用作true == someFuncThatReturnsBool()布尔表达式,对于布尔值,我通常会这样做:

if (someFuncThatReturnsBool())
{
   // Do somthing
}
Run Code Online (Sandbox Code Playgroud)

如果有的话,生成的代码有什么不同?使用"true =="符号是否有任何优势,其他可能为了清楚,函数返回一个布尔值?...类型检查??,个人我看不到任何优势......

谢谢 :)

Jes*_*ood 5

如果有的话,生成的代码有什么不同?

没有.

使用"true =="符号是否有任何优势,其他可能是为了清楚该函数返回一个布尔值?

IFF函数名称很差然后我可能会编写显式版本.否则,如果从函数中明显看出它是布尔检查(即is_XXX时尚),则没有理由使用它.

  • 如果该功能名称不佳,我会更改其名称.使用像if(true == function())`这样的扭曲符号不会使事情更具可读性. (2认同)