assert
—macro for debugging diagnosticsSynopsis
#include <assert.h> void assert(int expression);
Description
Use this macro to embed debuggging diagnostic statements in
your programs. The argument expression should be an
expression which evaluates to true (nonzero) when your program
is working as you intended.
When expression evaluates to false (zero), assert
calls abort
, after first printing a message showing what
failed and where:
Assertion failed: expression, file filename, line lineno, function: func
If the name of the current function is not known (for example, when using a C89 compiler that does not understand __func__), the function location is omitted.
The macro is defined to permit you to turn off all uses of
assert
at compile time by defining NDEBUG
as a
preprocessor variable. If you do this, the assert
macro
expands to
(void(0))
Returns
assert
does not return a value.
Portability
The assert
macro is required by ANSI, as is the behavior
when NDEBUG
is defined.
Supporting OS subroutines required (only if enabled): close
, fstat
,
getpid
, isatty
, kill
, lseek
, read
, sbrk
, write
.