【发布时间】:2020-07-31 02:19:06
【问题描述】:
在任何地方都找不到对此的引用——我正在尝试使用以下代码,任何人都可以告诉我!!在这种情况下意味着什么?只是为了清楚这是“砰砰”!不是“管道”||。提前致谢!
/* Branch prediction */
#ifdef __GNUC__
# define likely(p) __builtin_expect(!!(p), 1)
# define unlikely(p) __builtin_expect(!!(p), 0)
# define unreachable() __builtin_unreachable()
#else
# define likely(p) (!!(p))
# define unlikely(p) (!!(p))
# define unreachable() ((void)0)
#endif
【问题讨论】:
-
!!(expression)将表达式(假设非空)转换为0或1:!!3.14159 ==> 1;!!sqrt(0) ==> 0;!!true ==> 1;!!false ==> 0 -
问问自己
!(!(p))是什么意思——同样的事情。 Example -
这能回答你的问题吗? What is "!!" in C?
-
非常感谢 - 为重复道歉。
标签: c logical-operators negation