NAZWA¶
assert - przerwanie pracy programu, jeśli wyrażenie jest
fałszywe
SKŁADNIA¶
#include <assert.h>
void assert(scalar wyrażenie);
OPIS¶
Jeśli w momencie ostatniego włączenia pliku
<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 błędów i przerywa
pracę programu przez wywołanie
abort(3) jeśli
wyrażenie jest fałszywe (to jest równe zeru).
Celem istnienia tego makra jest pomoc programistom w znalezieniu usterek w ich
programach. 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¶
POSIX.1-2001, C89, C99. W C89
wyrażenie musi być typu
int, w przeciwnym wypadku zachowanie funkcji jest nieokreślone,
jednakże w C99 może być dowolnego typu skalarnego.
BŁĘDY¶
assert() jest zaimplementowane 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 Heisenbugów [patrz:
http://pl.wikipedia.org/wiki/Heisenbug - przyp.tłum.], które nie
występują przy włączonym odpluskwianiu.
ZOBACZ TAKŻE¶
abort(3),
assert_perror(3),
exit(3)
O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 3.71 projektu Linux
man-pages. Opis projektu, informacje dotyczące zgłaszania
błędów, oraz najnowszą wersję
oryginału można znaleźć pod adresem
http://www.kernel.org/doc/man-pages/.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man
są: Adam Byrtek (PTM) <abyrtek@priv.onet.pl>, Andrzej
Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>, Robert Luberda
<robert@debian.org> i Michał Kułach
<michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu
manpages-pl; uwagi, pomoc, zgłaszanie błędów na
stronie
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z
wersją
3.71 oryginału.