¿Qué es ": - !!" en el código C?

e topé con este extraño código macro en / usr / include / linux / kernel.h:

/* Force a compilation error if condition is true, but also produce a
   result (of value 0 and type size_t), so the expression can be used
   e.g. in a structure initializer (or where-ever else comma expressions
   aren't permitted). */
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))

Que hace:-!! do?

Respuestas a la pregunta(10)

Su respuesta a la pregunta