C Programming/assert.h

assert.h defines the macro. The macro can be used to verify assumptions made by the program and print a diagnostic message if this assumption is false.

When executed, if the expression is false (that is, compares equal to 0),  writes information about the  call that failed on   and then calls. The information it writes to  includes:
 * the source filename (the predefined macro )
 * the source line number (the predefined macro )
 * the source function (the predefined identifier ) (added in C99)
 * the text of expression that evaluated to 0

Example output of a program compiled with gcc on Linux:

program: program.c:5: main: Assertion `a != 1' failed. Abort (core dumped)

Programmers can eliminate the assertions without changing the source code: if the macro NDEBUG is defined before the inclusion of, the   macro is defined simply as:

and therefore has no effect on the program, not even evaluating its argument. Therefore expressions passed to  must not contain side-effects since they will not happen when debugging is disabled. For instance:

will not read a line and not assign to x when debugging is disabled.

Macros

 * assert

Functions
The C99 standard requires no functions to be declared in the  header.