Dodatek C Wybrane funkcje biblioteki standardowej assert Deklaracja #define assert(expr) Plik nagłówkowy assert.h Opis Makro przypominające w użyciu funkcję, służy do debuggowania programów. Gdy testo- wany warunek logiczny expr przyjmuje wartość fałsz, na standardowe wyjście błędów wypisy- wany jest komunikat o błędzie (zawierające m.in. argument wywołania makra; nazwę funkcji, w której zostało wywołane; nazwę pliku źródłowego oraz numer linii w formacie zależnym od implementacji) i program jest przerywany poprzez wywołanie funkcji abort. W ten sposób możemy oznaczyć w programie niezmienniki, czyli warunki, które nieza- leżnie od wartości zmiennych muszą pozostać prawdziwe. Jeśli asercja zawiedzie, oznacza to, że popełniliśmy błąd w algorytmie, piszemy sobie po pamięci (nadając zmiennym wartości, których nigdy nie powinny mieć) albo nastąpiła po drodze sytuacja wyjątkowa, na przykład związana z obsługą operacji wejścia-wyjścia. Można łatwo pozbyć się asercji, uwalniając kod od spowalniających obciążeń a jednocze- śnie nie musząc kasować wystąpień assert i zachowując je na przyszłość. Aby to zrobić, należy przed dołączeniem pliku nagłówkowego assert.h zdefiniować makro NDEBUG, wówczas makro assert przyjmuje postać: #define assert(ignore) ((void)0) Makro assert jest redefiniowane za każdym dołączeniem pliku nagłówkowego assert.h. Wartość zwracana Makro nie zwraca żadnej wartości. 189
... zobacz całą notatkę
Komentarze użytkowników (0)