Cassert

Stogu

Biblioteka cassert dostarcza jedno makro, które może być używane jako standardowe narzędzie debugujące:

void assert (int expression);

Gdy argument expression jest równy 0, na standardowy strumień błędów zostaje wypisana informacja oraz zostaje wywołana funkcja Abort, która przerywa działanie programu. Wiadomość jest zależna od kompilatora, ale zazwyczaj zawiera wyrażenie, nazwę pliku oraz linię. Przykładowa wiadomość:

Assertion failed: wyrażenie, file nazwa pliku, line numer linii

Jeżeli przed dołączeniem biblioteki cassert zostało zdefiniowane makro o nazwie NDEBUG makro assert zostanie wyłączone. NDEBUG musi zostać zdefiniowane przed dołączeniem biblioteki. Pozwala to programiście używać dowolnej ilości makr do debugowania programu, a następnie wyłączenia ich w produkcie końcowym.

Przykład

#include <stdio.h>
#define NDEBUG
#include <assert.h>
 
int main (int argc, char** argv)
{
  FILE * plik;
  plik=fopen ("file.dat","r");
  assert (plik);
  fclose (plik);
 
  return 0;
}

0 komentarzy