Nombre de la función : afirmar
Archivo de encabezado : <assert.h>
Prototipo de función : afirmación nula (expresión int);
Función : afirmar si una expresión es correcta
Parámetro : expresión Si su valor es falso (es decir, 0), primero imprime un mensaje de error en stderr y luego finaliza el programa llamando a abortar.
Valor de retorno : Sin valor de retorno
Reponer :
1. Las llamadas frecuentes afectarán en gran medida el rendimiento del programa y aumentarán los gastos generales adicionales. Después de la depuración, puede deshabilitar las llamadas de afirmación insertando #define NDEBUG antes de la declaración que contiene #include <assert.h>.
2. Verifique la legalidad de los parámetros pasados al comienzo de la función.
3. Cada afirmación solo prueba una condición, porque cuando se prueban varias condiciones al mismo tiempo, si la afirmación falla, es imposible determinar intuitivamente qué condición falló.
4. No puede usar declaraciones que cambien el entorno, porque afirmar solo tiene efecto en DEBUG. Si hace esto, encontrará problemas cuando el programa ignore la declaración de afirmación cuando realmente se esté ejecutando, como por ejemplo:
error:
afirmar(i++<100);
Esto se debe a que si ocurre un error, por ejemplo, i = 100 antes de la ejecución, esta declaración no se ejecutará y luego el comando i ++ no se ejecutará.
correcto:
afirmar(i<100);i++;
5. Debe haber una línea en blanco entre afirmar y las siguientes declaraciones para crear una sensación de coherencia lógica y visual.
6. En algunos lugares, afirmar no puede reemplazar el filtrado condicional. Assert se utiliza para evitar errores obvios, no para manejar excepciones. Los errores y las excepciones son diferentes. Los errores no deberían ocurrir y las excepciones son inevitables. Las excepciones del lenguaje C se pueden manejar mediante juicio condicional, y otros lenguajes tienen sus propios mecanismos de manejo de excepciones. Una regla muy simple para usar afirmar es usarlo al comienzo de un método o función. Si lo usa en medio de un método, debe considerar cuidadosamente si es apropiado. Un proceso funcional no ha comenzado al comienzo del método y los problemas que ocurren durante la ejecución de un proceso funcional son casi todas excepciones.
Ejemplo de programa : afirmar la variable a<80 y generar el resultado
#include<assert.h>#include<stdio.h>intmain(void){inta=50;assert(a<80);// Afirmar un <80, si es 0, generar un mensaje de error y finalizar el programa , de lo contrario continúe ejecutando printf (Assertastruen);return(0);}
Resultados de ejecución:
afirmar