I saw the assert macro implementation which is this:
#define assert(_Expression) (void) ((!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression),_CRT_WIDE(__FILE__),__LINE__),0))
I don't understand the purpose of using the negation operator twice.