The <assert.h> include file defines the assert macro. You must include assert.h when you use assert.
The definition of assert is in an #ifndef preprocessor block. If you have not defined the identifier NDEBUG through a #define directive or on the compiler command line, the assert macro tests a given expression (the assertion). If the assertion is false, the system prints a message to stderr and an abort signal is raised for the program.
If NDEBUG is defined, assert is defined to do nothing. You can suppress program assertions by defining NDEBUG.