/* The system header file assert.h is the source of potential * heisenbugs. Doing something inside an assert that changes * the state of the program, will not change said state when * NDEBUG is used as intended. This header removes that problem. * * Example of the problem: * * int bork = 1; * assert(bork++); * printf("%d\n", bork); // if NDEBUG is set, prints 1 * // if NDEBUG is not set, prints 2 */#ifndef NDEBUG# include <assert.h>#else# define assert(x) (void)(x)#endif