Справочник по C/C++
assert()

#include <assert.h>
void assert(int exp);

Описание

Записывает информацию об ошибке в поток stderr

Макрос assert(), определенный в заголовках <assert.h> и <cassert>, записывает информацию об ошибке в поток stderr, а затем прекращает выполнение программы, если выражение ехр равно нулю. В противном случае макрос assert() никаких действий не выполняет. Несмотря на то что точный результат выполнения этого макроса определяется конкретной реализацией, многие компиляторы используют сообщение, подобное следующему.

Assertion failed: <выражение>, file <имя_файла>, line <номер_строки>

В версии С99 отображаемое сообщение также включает имя функции, содержащей макрос assert().

Макрос assert() обычно используется, чтобы убедиться в корректной работе программы, причем выражение составляется таким образом, чтобы оно было истинным только при отсутствии ошибок.

После отладки программы нет необходимости в удалении операторов assert() из исходного кода, поскольку, если определен макрос NDEBUG(как и должно быть в идеале), макрос assert() игнорируется.



Реклама