Differences between version 4 and predecessor to the previous major change of assert(3).
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 4 | Last edited on Sunday, September 7, 2003 4:47:32 pm | by CraigBox | Revert |
Older page: | version 2 | Last edited on Sunday, September 7, 2003 11:04:05 am | by DanielLawson | Revert |
@@ -1,53 +1,28 @@
-ASSERT
-!!!ASSERT
-NAME
-SYNOPSIS
-DESCRIPTION
-RETURN VALUE
-CONFORMING TO
-BUGS
-SEE ALSO
-----
!!NAME
-
assert - Abort the program if assertion is false.
+
!!SYNOPSIS
-
#include <assert.h>
void assert (int ''expression'');
-
!!DESCRIPTION
+__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). This only happens when the macro __NDEBUG__ was undefined when <assert.h> was last included.
-__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).
-This only happens when the macro __NDEBUG__ was undefined
-when ____ was last included.
!!RETURN VALUE
+No value is returned.
-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.
-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 __NDEBUG__ is defined. This may create [Heisenbugs|http://c2.com/cgi/wiki?HeisenBug] which go away when debugging is turned on.
-__assert()__ is implemented as a macro; if the expression
-tested has side - effects, program behaviour will be
-different depending on whether __NDEBUG__ is defined.
-This may create Heisenbugs which go away when debugging is
-turned on.
!!SEE ALSO
-
exit(3), abort(3)
-----