在 C++ 中,我阅读了一条编码指南,如“检查 If 控制语句中的返回值” 喜欢,
if(TRUE == fun1())
{
//Statements
}
当“fun1”返回 True 时,在“if”语句内部,它将与“true”进行比较。 有必要对外比较吗? 这是一种好的做法还是这种编码方式会降低性能。?
最佳答案
与 TRUE 比较从来都不是一个好主意。
如果 fun1 返回一个 BOOL,那么它的值实际上是一个 int 并且可以是任何 int 值。 TRUE 只是 1,FALSE 是 0。但是 int 有很多其他值。与 FALSE 比较总是省事!
在很多情况下。函数返回“某物”,只要它不同于 0,就应该表示“真”(!=0)!
只要你有一个 bool 返回值,你就可以比较 true 和 false,它总是有效的。
这取决于样式,但我从不使用表达式来与 TRUE 值(意思不是 0,不是假)进行比较。我总是在 if 语句中写没有运算符的条件。它对我来说意味着“如果 fun1 是什么”或“如果 fun1 成功了”
if (fun1())
{
//Statements
}
在我们公司,这是正常的编码风格。如果我们想检查相反的情况。 “如果 fun1 失败”
if (!fun1())
{
}
对于现代编译器和处理器,没有真正的速度影响。
关于c++ - 在这种情况下是否需要检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28668701/