assert

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
ASSERT(3)		  Linux Programmer’s Manual		    ASSERT(3)



NAME
       assert - abort the program if assertion is false

SYNOPSIS
       #include <assert.h>

       void assert(scalar expression);

DESCRIPTION
       If  the	macro  NDEBUG  was  defined at the moment <assert.h> was last
       included, the macro assert() generates no code, and hence does nothing
       at  all.	  Otherwise,  the  macro  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).

       The  purpose  of this macro is to help the programmer find bugs in his
       program.	 The  message  "assertion  failed  in  file  foo.c,  function
       do_bar(), line 1287" is of no help at all to a user.

RETURN VALUE
       No value is returned.

CONFORMING TO
       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 scalar type.

BUGS
       assert() is implemented as a macro; if the expression tested has side-
       effects, program behaviour will be different depending on whether NDE-
       BUG  is defined.	 This may create Heisenbugs which go away when debug-
       ging is turned on.

SEE ALSO
       exit(3), abort(3), assert_perror(3)



C99				  2002-08-25			    ASSERT(3)