Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 in-
       cluded, 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)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | CONFORMING TO | BUGS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=assert&sektion=3&manpath=Red+Hat+9>

home | help