assert.h es un archivo de cabecera de la biblioteca estándar del Lenguaje de programación C, en el que se define la macro de depuración assert (aserción, en español), que implementa una aserción (test), usada para comprobar suposiciones en el programa:

#define assert ( test )

Esta macro se expande como un bloque "if", en el que se comprueba la condición 'test' y, dependiendo de si es o no verdadera, puede abortar el programa.

Si 'test' se evalúa como cero (es decir, si es falsa) entonces se aborta el programa mediante la función abort () y se imprime un mensaje en stderr en el que se incluyen la condición 'test', el nombre del archivo fuente y el número de línea en la que se llamó a assert() mediante las macros estándar predefinidas __FILE__ y __LINE__, respectivamente), adicionalmente a partir de la versión C99 se incluye el nombre de la función que se estaba ejecutando (mediante la macro __func__).

Si se coloca la directiva #define NDEBUG (no depurar) en el archivo fuente antes de incluir assert.h, entonces la macro se definirá como:

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

Lo que provoca que ésta no tenga ningún efecto en el programa. Algunos compiladores simplemente convierten todas las aserciones en comentarios.

Ejemplo de sintaxis:

void assert(int test);

Véase también editar