¿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 ++.

Respuestas a la pregunta(3)

Su respuesta a la pregunta