【发布时间】:2023-03-30 12:45:01
【问题描述】:
我看到人们使用带有两个 '!' 的条件子句的代码
#define check_bit(var, pos) (!!((var) & (1 << (pos))))
#define likely(x) __builtin_expect(!!(x),1)
#define unlikely(x) __builtin_expect(!!(x),0)
是我能找到的一些例子。
使用!!(condition) 比使用(condition) 有什么优势吗?
【问题讨论】:
-
天哪,对不起!
-
@Siidheesh 这取决于您的搜索方式,我最初的搜索也没有出现,但后来稍作修改。我个人没有发现任何一个 dup 像我发现的内核新手线程那样一针见血地为那个金块做这件事,这可能是值得的。此外,基思的解释也比大多数其他人的解释要好得多,但他通常会写出很好的答案。
-
是的,搜索双重否定就可以了
标签: c logical-operators