【发布时间】:2013-10-18 00:13:50
【问题描述】:
我阅读了一些遗留代码:
if ( 1 || !Foo() )
有什么不写的理由吗:
if ( !Foo() )
【问题讨论】:
-
'1 || something()' 将始终产生 true。所以这两个语句是不等价的,但至于为什么这样做,通过。
-
if (1 || !foo())if (1). -
这很可能是临时完成的,以强制条件为真(可能是错误、解决方法或重构)而不是放回原处。使用源代码管理的注释/归咎功能查找更改的版本——您可能会获得有用的注释或错误数据库条目,以帮助找出更改的原因
-
也许 Foo() 被实现为
return rand() % 2; -
1 && !Foo()等于!Foo()
标签: c++ c if-statement syntax logical-operators