可能重复:
C++代码中的双重否定
当我扫描Webkit源代码时,我发现了一个奇怪的使用布尔"not"运算符!:
BOOL enabled;
if (SUCCEEDED(sharedPreferences->continuousSpellCheckingEnabled(&enabled)))
continuousSpellCheckingEnabled = !!enabled;
if (SUCCEEDED(sharedPreferences->grammarCheckingEnabled(&enabled)))
grammarCheckingEnabled = !!enabled;
Run Code Online (Sandbox Code Playgroud)
他们为什么不enabled直接使用而不是!!enabled?