Programowanie w języku C/C++ » Biblioteka standardowa

Cassert

  • 2008-12-21 13:08
  • 0 komentarzy
  • 2024 odsłony
  • Oceń ten tekst jako pierwszy
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;
}