2013-04-04 24 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