c++ - 在这种情况下是否需要检查

标签 c++ if-statement mfc

在 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/

相关文章:

c++ - 为什么我需要运行我的 makefile 两次来编译我的代码

javascript - if 语句包括悬停()和窗口宽度

visual-c++ - 我在我的对话框类中添加了一个 OnPaint() 函数,但它在 dlg.DoModal() 之后没有被调用

c# - 安装完软件后如何安装USB驱动

c++ - 如何在一对 vector 中输入单个值?

c++ - 如何在 CMake 中编译非通用语言

javascript - .this 有什么问题。 javascript if else 代码?

javascript - if 语句中表达式的顺序

c++ - MFC如何添加工具栏以显示变化的文本

windows - 如何制作一个 16x16 像素图标大小的符号按钮?