macro:
if NDEBUG is defined the assert macro is defined simply as:
NDEBUG
#define assert(ignore) ((void)0)
c89 draft