Listing 1

/*  assert.h standard header
 *  copyright (c) 1990 by P.J. Plauger
 */
#undef assert/*  remove any previous definition */
#ifdef NDEBUG

#define assert(test) ((void)0)

#else /*  NDEBUG not defined */

void _Assert(char *);

#ifndef _STR /*  define stringize macro just once */
#define _STR(x) #x
#endif

#define assert(test) ((test) || \
   _Assert(__FILE__":" __STR(__LINE__) " " #test))

#endif