¿Qué significa !! (x) en C (especialmente el kernel de Linux)?
He estado leyendo a través del kernel de Linux (específicamente, 2.6.11). Encontré la siguiente definición:
#define unlikely(x) __builtin_expect(!!(x), 0)
(de linux-2.6.11 / include / linux / compiler.h: 61enlace lxr)
Que hace !! ¿realizar? ¿Por qué no simplemente usar (x)?
Ver también:¿Cómo funciona la negación lógica en C?Doble negación en código C ++.