I cam across a line which goes like this :

#define likely(condition) (__builtin__ expect (!!(condition),1))

Please somebody explain the double negation used in this macro.

Regards
Navkamal Rakra