assert

Autres langues

Langue: pl

Autres versions - même langue

Version: 2002-08-25 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

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)