assert.h

The assert.h file defines the assert() macro. If the NDEBUG macro is defined, then assert does nothing. Otherwise, assert() calls the auxiliary function _assert if the sole macro parameter of assert() evaluates to 0 (FALSE). Refer the following listing.

Listing: Use assert() to Assist in Debugging
#ifdef NDEBUG
  #define assert(EX)

#else

  #define assert(EX) ((EX) ? 0 : _assert(__LINE__, __FILE__))

#endif