Your company here, and a link to your site. Click to find out more.

assert.h - Man Page

verify program assertion


This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (consult the corresponding Linux manual page for details of Linux behavior), or the interface may not be implemented on Linux.


#include <assert.h>


The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2017 defers to the ISO C standard.

The <assert.h> header shall define the assert() macro. It refers to the macro NDEBUG which is not defined in the header. If NDEBUG is defined as a macro name before the inclusion of this header, the assert() macro shall be defined simply as:

#define assert(ignore)((void) 0)

Otherwise, the macro behaves as described in assert().

The assert() macro shall be redefined according to the current state of NDEBUG each time <assert.h> is included.

The assert() macro shall be implemented as a macro, not as a function. If the macro definition is suppressed in order to access an actual function, the behavior is undefined.

The following sections are informative.

Application Usage




Future Directions


See Also

The System Interfaces volume of POSIX.1-2017, assert()

Referenced By


2017 IEEE/The Open Group POSIX Programmer's Manual