Provided by: manpages-pl-dev_20060617-1_all bug

NAZWA

       assert - przerwanie pracy programu jeśli wyrażenie jest fałszywe

SKŁADNIA

       #include <assert.h>

       void assert(scalar wyrazenie);

OPIS

       Jeśli  w  momencie włączania <assert.h> jest zdefiniowane makro NDEBUG,
       to makro assert() nie generuje żadnego kodu, więc w ogóle nic nie robi.
       W   przeciwnym   przypadku   makro   assert()   wypisuje  komunikat  na
       standardowym  wyjściu  i  przerywa  pracę  programu  poprzez  wywołanie
       abort() jeśli wyrazenie jest fałszywe (równe zeru).

       Celem  istnienia  tego  makra  jest  pomoc  programiście  w znalezieniu
       usterek  #  czy  polskie  locale  tłumaczy  ten  komunikat  ?   w  jego
       programie.   Komunikat   "assertion  failed  in  file  foo.c,  function
       do_bar(), line 1287" jest bezużyteczny dla użytkownika.

WARTOŚĆ ZWRACANA

       Nie jest zwracana żadna wartość.

ZGODNE Z

       ISO9899 (ANSI C). W standardzie z  roku  1990  od  wyrażenia  wyrazenie
       wymaga  się,  aby było typu int a zachowanie funkcji jest nieokreślone,
       gdy tak nie jest.  Jednakże w standardzie z  roku  1999  może  ono  być
       dowolnego typu skalarnego.

BŁĘDY

       assert() jest zaimplementowana jako makro. Jeśli testowane wyrażenie ma
       jakieś efekty uboczne, zachowanie programu będzie różne w zależności od
       tego,  czy  zdefiniowano  makrodefinicję  NDEBUG  Może  to prowadzić do
       usterek Heisena, które nie występują przy włączonym odpluskwianiu.

ZOBACZ TAKŻE

       exit(3), abort(3), assert_perror(3)