NOMBRE¶
assert - aborta el programa si la expresión es falsa.
SINOPSIS¶
#include <assert.h>
void assert (int expression);
DESCRIPCIÓN¶
Si la macro
NDEBUG estaba definida en el momento en que
<assert.h> fue incluido por última vez, la macro
assert() no genera ningún código, y por tanto no hace
nada. En caso contrario, la macro
assert() imprime un mensaje de error
a la salida estándar y termina el programa llamando a
abort() si
expression es falsa (es decir, es igual a cero). Esto sólo
sucede cuando la macro
NDEBUG está sin definir.
El propósito de esta macro es ayudar al programador a encontrar fallos en
su programa. El mensaje "aserto fallido en el fichero foo.c,
función do_bar(), línea 1287" no es de ayuda en absoluto
para un usuario.
VALOR DEVUELTO¶
No se devuelve ningún valor.
ISO 9899 (ANSI C). En el estándar de 1990,
expression debe ser de
tipo
int , teniendo un comportamiento indefinido si no es así,
pero en el estándar de 1999 puede tener cualquier tipo escalar.
FALLOS¶
assert() es implementada como un macro; si la expresión comprobada
tiene efectos laterales, el comportamiento del programa puede ser diferente
dependiendo de si
NDEBUG está definida o no. Esto puede crear
fallos indeterminados (Heisenbugs) que no se dan cuando la depuración
está activada.
VÉASE TAMBIÉN¶
exit(3),
abort(3),
assert_perror(3)