assert - Abort the program if assertion is false.
void assert (int expression);
assert() prints an error message to standard output and
terminates the program by calling abort() if expression is
false (i.e., compares equal to zero). This only happens
when the macro NDEBUG was undefined when <assert.h> was
No value is returned.
ISO9899 (ANSI C). In the 1990 standard, expression is
required to be of type int and undefined behavior results
if it is not, but in the 1999 standard it may have any
assert() is implemented as a macro; if the expression
tested has side - effects, program behaviour will be dif
ferent depending on whether NDEBUG is defined. This may
create Heisenbugs which go away when debugging is turned