Pages - Menu

miércoles, 22 de enero de 2014

La librería assert.h

El archivo de cabecera de la biblioteca estándar de C assert.h contiene la macro de depuración assert, el cual implementa una aserción para así comprobar comportamientos del programa.

Foto tomada de freedigitalphotos.net

La forma de definirlo sería así:

#define assert ( test )

Donde test es la aserción que se va a evaluar, mirando el ejemplo:

#include <stdio.h>
#include <assert.h>

int comprueba_assert ( int x )
{
   assert( x <= 7 );
   return x;
}

int main ( void )
{
  int i;

    for (i=0; i<=9; i++){
        comprueba_assert ( i );
        printf("i = %i\n", i);
    }

  return 0;
}

Vemos la definición de la cabecera, la función y la llamada a la misma, de tal forma que lo que el programa va a hacer es comprobar la expresión x<=7, en caso de que la condición se evalúe como falsa entonces la ejecución del programa terminará mediante la función abort ().

El archivo de cabecera assert.h será muy útil a la hora de depuración de programas y previsión de comportamientos inesperados.

(Mientras terminan las votaciones y comenzamos con los nuevos temas, voy a ir completando diversos apartados del blog, como por ejemplo la biblioteca estándar de C. Conforme vaya viendo lo que necesitemos iré completando todo este tipo de apartados a la vez que continuamos con los temas, lo cual implicaría más de un post al día, a ver que tal se da.)


¿Qué otras utilidades ves al uso de assert.h?