Програмиране на C/Стандартна библиотека/assert.h

От Уикикниги
Направо към навигацията Направо към търсенето

Заглавния файл <assert.h> се използва за диагностични цели. Той дефинира макро-функциите assert() и static_assert[1].

Макро-функции[редактиране]

C2x § 7.2.1 Program diagnostics[2]

assert[редактиране]

Прототип
#include <assert.h>
void assert(scalar expression);
Описание
Макросът assert се използва за диагностика на целочислен израз.
Ако expression е 0 (FALSE) се изпраща информация за грешка към стандартния поток за грешки stderr и се извиква функцията abort(), която прекратява изпълнението на програмата. Съобщението за грешка, което се извежда не е стандартизирано, но е от рода на: Assertion failed: expression , file filename , line line-number. Ако expression е различен от 0 (FALSE) програмата продължава изпълнението се.
Типичното използване на assert е само в развойната фаза. В производствената фаза той обикновено се маха. За целта не е задължително да се изтрие от файл. Достатъчно е само пред включването на заглавния файл <assert.h> да се дефинира макроса NDEBUG. Когато този макрос е дефиниран, функционалността на макроса assert е изключена и той не прави нищо.
Вижте също
abort

Бележки[редактиране]

  1. Script error: The module returned a nil value. It is supposed to return an export table.. ISO/IEC JTC1/SC22/WG14. p. 153, § 7.2 Diagnostics <assert.h>. (на английски)
  2. "ISO/IEC 9899:202x" с. 153 § 7.2.1 Program diagnostics