ASSERT(3) | Manual del Programador de Linux | ASSERT(3) |
assert - aborta el programa si la expresión es falsa.
#include <assert.h> void assert (int expression);
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.
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.
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.
25 agosto 2002 | GNU |