assert(3)

NUME
assert - întrerupe programul dacă afirmația este falsă

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <assert.h>

void assert(scalar expresie);

DESCRIERE
Această macrocomandă poate ajuta programatorii să găsească erori în programele lor sau să trateze cazuri excepționale prin intermediul unui accident care va produce rezultate limitate de depanare.

If expression is false (i.e., compares equal to zero), assert() prints an error message to standard error and terminates the program by calling abort(3). The error message includes the name of the file and function containing the assert() call, the source code line number of the call, and the text of the argument; something like

    program: vreun_fișier.c:16: vreo_funcție: Aserțiunea `val == 0' a eșuat

Dacă macrocomanda NDEBUG este definită în momentul în care <assert.h> a fost inclus ultima dată, macrocomanda assert() nu generează niciun cod și, prin urmare, nu face nimic. Nu se recomandă definirea lui NDEBUG dacă se utilizează assert() pentru a detecta condițiile de eroare, deoarece software-ul se poate comporta în mod nedeterminist.

VALOAREA RETURNATĂ
Nu se returnează nicio valoare.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
assert() | Siguranța firelor | MT-Safe

STANDARDE
C11, POSIX.1-2008.

ISTORIC
C89, C99, POSIX.1-2001.

În C89, expresie trebuie să fie de tipul int și dacă nu este de acest tip, rezultă un comportament nedefinit, dar în C99 poate avea orice tip scalar.

ERORI
assert() este implementat ca o macrocomandă; dacă expresia testată are efecte secundare, comportamentul programului va fi diferit în funcție de definirea sau nu a NDEBUG. Acest lucru poate crea erori software „Heisenbugs” care dispar atunci când depanarea este activată.

CONSULTAȚI ȘI
abort(3), assert_perror(3), exit(3)

TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.