If the argument is false, an assertion failure message is printed to
stderr
and the program is aborted.
Include
<assert.h>
Prototype
void assert(scalar
expression);
Argument
expression |
The expression to test. |
Remarks
The expression evaluates to zero or non-zero. If zero, the assertion fails
and a message is printed to stderr
. The message includes the source
file name (__FILE__
), the source line number
(__LINE__
), the expression being evaluated and the message. The macro
then calls the function abort()
. If the macro
_VERBOSE_DEBUGGING
is defined, a message will be printed to
stderr
each time assert()
is called.
Assertion testing may be turned off without removing the code by defining
NDEBUG
before including <assert.h>
. If the
macro NDEBUG
is defined, assert()
is ignored and no
code is generated.
Example
#include <assert.h>
int main(void)
{
int a;
a = 2 * 2;
assert(a == 4); /* if true-nothing prints */
assert(a == 6); /* if false-print message */
/* and abort */
}
Example Output
sampassert.c:9 a == 6 -- assertion failed
ABRT
with _VERBOSE_DEBUGGING
defined:
sampassert.c:8 a == 4 -- OK
sampassert.c:9 a == 6 -- assertion failed
ABRT