一些计算布尔值的函数:
bool a()
{
return trueorfalse;
}
bool b()
{
//...
}
bool c()
{
//...
}
这个条件
//somewhere else
if((a()&&b()&&c()) || (a()&&b()&&!c()) )
{
doSomething();
}
可以写成以下形式
if(a()&&b())
{
doSomething();
}
编译器通常会对此进行优化吗?
那么纯布尔值呢:
if((a&&b&&c) || (a&&b&&!c))
{
doSomething();
}
bool c() { static bool r=true; r = !r; return r;}
(例如)。 - Mooing Duck