Alexander Malkis wrote:
Why do programmers like to use NDEBUG instead of DEBUG?
ASSERT(3) Linux Programmer’s Manual ASSERT(3)
NAME
assert - abort the program if assertion is false
SYNOPSIS
#include <assert.h>
void assert(scalar expression);
DESCRIPTION
If the macro NDEBUG was defined at the moment <assert.h> was last
included, the macro assert() generates no code, and hence does
nothing at all. Otherwise, the macro 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).
The purpose of this macro is to help the programmer find bugs in
his program. The message "assertion failed in file foo.c,
function do_bar(), line 1287" is of no help at all to a user.
The assert debugging mechanism was designed to be *on* by default.
You must define NDEBUG to turn it off.