2013-04-04 21 views

回答

0

这可能是有道理的,例如,如果你有一个函数可以执行你想要被解雇的东西,不管第一个值是什么。

if(a & _checkForB()) 
0

我能想到的唯一情况就是第二个评估有一些令人满意的副作用。

0

我不知道这是否是实际使用,但有时你必须代码杂技如

string s; 
if((s = reader.read())) 
{ 
    doStuff 
} 

,我想你可以使用&,如果你在你的条件确实有许多东西东东。

0

为什么要测试b是否为假?

我猜你的意思是:

为什么你会测试B,如果是假的?

E.g.如果b有副作用。尽管在这种情况下你可能有一个设计问题。

实际上,“&”不适用于布尔值,除非可能是“& =”。

1

单个&是一个按位运算符,所以这就是您使用它的原因。例如,如果你想检查是否设置了一位:

unsigned int bit = 4; 
if (bit & value) { 
    //third lowest bit is set 
} 

这在C库函数中发生了很多。如果您节省内存并使用单独的位而不是单独的变量,这非常有用。

编辑:我误读了一下帖子。我现在看到你正在谈论的背景。所以只有在b有副作用的情况下才能与其他人一致。

+0

实际上是唯一正确的答案,+1 – BigMike 2013-04-04 15:16:08