【发布时间】:2022-01-09 23:22:37
【问题描述】:
我正在阅读使用 glib 的 C 语言开放代码,我发现了类似的内容
gboolean function()
{
guint myVar = 0;
myVar = (!!globalVar1 + !!globalVar2 + !!globalVar3);
return !!myVar;
}
我不明白那个双感叹号到底发生了什么。
【问题讨论】:
-
!是一个逻辑not。!!是逻辑not应用了两次。这有效地将任何非零值转换为1 -
这能回答你的问题吗? What does !! (bang bang) mean?
-
什么是
gboolean function()?即使在 80 年代,将函数命名为“函数”也被认为是不好的做法。但现在不是80年代了,你应该声明参数。 -
我一直称之为“布尔归约”
标签: c unary-operator negation