我一直在通读 Linux 内核(特别是 2.6.11)。 我遇到了以下定义:
#define unlikely(x) __builtin_expect(!!(x), 0)
(来自 linux-2.6.11/include/linux/compiler.h:61 lxr link )
什么!!完成?为什么不直接使用 (x)?
See also:
最佳答案
!!(x)
强制它为 0 或 1。0 保持为 0,但任何非零值(在 bool 上下文中为“真”)变为 1。
关于c - !!(x) 在 C(尤其是 Linux 内核)中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2527086/