我看到了一些这样的C++代码:

bool MyProject::boo(...)
{
  bool fBar = FALSE;
  ....
  return !!fBar;
}

我想不出在这种情况下直接返回fBar和返回!!fBar之间的任何区别。两个负面因素有何不同?

谢谢

最佳答案

在您的示例中,返回fBar和返回!!fBar没有什么区别。

在其他情况下,例如当使用用户定义的类型(例如BOOL(typedef -ed为int))时,!!构造具有将任何非零值强制为true的作用;即!!fBarfBar ? true : false等效。如果fBar可以为5,并且您想将其与TRUE(定义为(BOOL)1)进行比较,则可能会有所不同。

08-24 13:54