Funkcja assert w C

Funkcja assert w C
W języku C Aster jest wyjątkowo wygodnym makro w przebraniu funkcji. Pomaga nam przetestować program, sprawdzając wartość wyrażeń, które powinny być prawdziwe w zwykłych okolicznościach. Zwykle jest to niezwykle pomocne ze względu na opisowy sposób pokazania błędu, który ułatwia nam debugowanie programu. Kilka przykładów wyjaśniono w tym przewodniku dla zrozumienia użytkowników.

Składnia/ deklaracja

Podobnie jak składnia funkcji normalnych do deklaracji w C, czyli:

[RetUnType] FunctionName ([ParameterType] Parametr);

Funkcja assert jest również zadeklarowana w podobny sposób, jak:

void Assert (ekspresja bool);

Parametry

FuncationName= Asert
ParameterType= Boolean
Parametr= Wyrażenie

Podobnie jak w każdym innym wyrażeniu w świecie języków programowania, wymaga wyrażenia boolowskiego do porównania (każdy rodzaj logicznego porównania, nierówności itp.). Sprawdza, czy wyświetlenie komunikatu o błędzie jest fałszywe i przerywa wykonywanie programu, lub program działa płynnie bez żadnych odstrzennych.

Typ powrotu= pustka
Jak powiedzieliśmy wcześniej, funkcja Assert jest makro, w przebraniu funkcji, a makro nie zwraca żadnej wartości. To jest powód, dla którego jego typ powrotu jest nieważny.

Przykład 1

W naszym pierwszym przykładzie utworzymy prostą funkcję do obliczenia średniej za pomocą tablic w języku C.

Użyjemy funkcji Assert, ograniczając użytkownika od wprowadzenia nieprawidłowego wejścia do zmiennej N. Jako przypadkowe dane wejściowe 0, Zmienne obecne w tablicy w normalnych okolicznościach będzie problemem dla tego programu. Podziel sumę zmiennych obecnych w tablicy o wielkości tablicy, znanej również jako N. Dowolna liczba podzielona przez 0 powoduje błąd środowiska wykonawczego, dlatego użyjemy funkcji Assert, aby rozwiązać ten problem. Teraz zacznijmy od kodowania.

Utwórz plik notatnika i nazwij go wszystkim. W naszym przypadku zachowamy naszą nazwę pliku „Przykład 1" i dodaj .rozszerzenie CPP na końcu mojej nazwy pliku.

Teraz otwórz terminal wiersza polecenia i wpisz następujące polecenie:

$ gcc -o [Twoja nazwa pliku] [nazwa pliku].CPP

Służy do kompilacji programów i wyników podobnych do poniższego obrazu, chyba że masz jakieś błędy kompilacji w programie.

W końcu typ:

$ [Twoja nazwa pliku].exe

Do wykonania programu C w wierszu polecenia.

Teraz zagłębmy się w główne danie przykładu. Po pierwsze, musimy dodać nagłówek Assert u góry.

Aby upewnić się, że problem nie wystąpi, użyjemy funkcji assert i przekazamy wyrażenie, aby zapewnić to.

I to wszystko, przetestujmy nasz program. Kiedy użytkownik wprowadza wartość N równa się 0.

Jak wynika z ekranu opublikowanego powyżej, funkcja Assert nagle przepływ wykonywania, gdy wyrażenie stało się fałszywe i opowiedziała nam powód, dla którego program ABORT ().

Gdy użytkownik wprowadzi prawidłową wartość, otrzymamy bezpłatny program płynnego uruchamiania.

Przykład 2

W tym przykładzie utworzymy program C, który przyjmuje ciąg nazwy użytkownika i zwraca Witam [nazwa użytkownika] jako wyjście.

Powyższy program nie ma błędu, ale możesz już znać problem, jeśli masz jakieś wcześniejsze wrażenia z wejściami ciągów. Problem polega na tym, że użytkownik może wprowadzić pusty ciąg, a ten program zostanie wykonany za pomocą zaczepu i wyświetlania Cześć w rezultacie.

To jest powód, dla którego potrzebujemy funkcji assert, aby upewnić się, że pusty ciąg nie jest wprowadzony. Wiertło do kodowania jest takie same jak wcześniej; Musimy tylko zmienić umieszczenie deklaracji funkcji Assert i jej wyrażenia. Użytkownik zwykle naciska klawisz „Enter”, aby wprowadzić pusty ciąg, który jest „\ 0” pod względem typu zmiennej char. Przekażemy wyrażenie, aby potwierdzić funkcję, która sprawdza, że ​​ciąg nie jest pusta.

Sprawdźmy wynik zmian, które właśnie wprowadziliśmy do naszego kodu, gdy użytkownik wprowadza pusty ciąg.

I jak widać na zrzucie ekranu, funkcja Assert odpowiedziała na wyrażenie poprawnie i nagłe wykonanie programu, aby wyświetlić komunikat o błędzie. Nazwa użytkownika jest teraz wprowadzana.

Nic się nie wydarzyło, ponieważ warunek ekspresji funkcji jest spełniony.

Wniosek

Ten artykuł obejmował funkcję Assert, jej składnię, sposób, w jaki jest zadeklarowany, a także kilka przykładów związanych z nim. Możesz zmienić przykłady zgodnie z obowiązkami zawodowymi. Mam nadzieję, że ten samouczek był łatwy do zrozumienia i wyczyścił wszystkie twoje zapytania związane z funkcją assert w języku C.