逻辑!!没什么

时间:2014-08-13 21:28:22

标签: c++ c com

我刚刚在微软的guiddef.h头文件中找到了这个:

__inline bool operator==(REFGUID guidOne, REFGUID guidOther)
{
    return !!IsEqualGUID(guidOne,guidOther);
}

!!是否有任何意义,或者当天某些开发人员感觉很可爱?

2 个答案:

答案 0 :(得分:13)

它关闭了转换为布尔值的Visual C ++愚蠢性能警告。

答案 1 :(得分:5)

在这种特殊情况下,Alf可能是对的。

否则,将整数值标准化为1(如果它们开始非零)或0(如果它们以0开始)进行逻辑运算是常见的习惯用法。