<分区>
将 bool 与 1 进行比较是否正确?
在我经常发现的遗留代码中:
if (xyz.isCounterActive() == 1)
其中 sCounterActive() 返回 bool 值。
显然,if ( xyz.isCounterActive() )
就足够了,但是如果我改变它,我不知道它可能会导致哪些副作用。软件很大,有缺陷,但客户坚持认为它可以正常工作。
编译器是VS2008
<分区>
将 bool 与 1 进行比较是否正确?
在我经常发现的遗留代码中:
if (xyz.isCounterActive() == 1)
其中 sCounterActive() 返回 bool 值。
显然,if ( xyz.isCounterActive() )
就足够了,但是如果我改变它,我不知道它可能会导致哪些副作用。软件很大,有缺陷,但客户坚持认为它可以正常工作。
编译器是VS2008
最佳答案
在这种情况下,xyz.isCounterActive()
的结果将隐式转换为 int
。隐式转换的规则很多,可以引用here ,例如。
isCounterActive
的签名可能在引入后发生了变化,而更改它的人忘记修改所有 isCounterActive
调用。
关于c++ - 在 C++ 中比较 bool 和 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32735416/