<assert.h>

<assert.h>


Include the standard header <assert.h> to define the macro assert, which is useful for diagnosing logic errors in the program. You can eliminate the testing code produced by the macro assert without removing the macro references from the program by defining the macro NDEBUG in the program before you include <assert.h>. Each time the program includes this header, it redetermines the definition of the macro assert.

#undef assert
#if defined NDEBUG
#define assert(test) (void)0
#else
#define assert(test) <void expression>
#endif

assert

#undef assert
#if defined NDEBUG
#define assert(test) (void)0
#else
#define assert(test) <void expression>
#endif

If the int expression test equals zero, the macro writes to stderr a diagnostic message that includes:

  • the text of test
  • the source filename (the predefined macro __FILE__)
  • the source line number (the predefined macro __LINE__)

It then calls abort.

You can write the macro assert in the program in any side-effects context.


See also the Table of Contents and the Index.

Copyright © 1992-2006 by P.J. Plauger and Jim Brodie. All rights reserved.

Last modified: 2013-12-21

comments powered by Disqus