Зачем использовать !! (условие) вместо (условие)? [Дубликат]
На этот вопрос уже есть ответ здесь:
Что означает !! (x) в C (особенно ядро Linux)? 3 ответавидел код, в котором люди использовали условные предложения с двумя '!'
#define check_bit(var, pos) (!!((var) & (1 < (pos))))
#define likely(x) __builtin_expect(!!(x),1)
#define unlikely(x) __builtin_expect(!!(x),0)