Функция
Проверяет условия и возможность прерывания выполнения программы.
Синтаксис
#include <assert.h>
void assert(int test);
Прототип
assert.h
Описание
Функция assert представляет собой макрокоманду, которая расширяется до оператора if; если параметр test принимает нулевое значение, то assert прерывает программу (при помощи вызова abort) и выводит сообщение в stderr.
Assert выводит следующее сообщение:
Assertion failed: <test>, file <filename>, line <linenum>
Позиции filename и linenum, перечисленные в сообщении, являются именем исходного файла и номером строки программы, в которой появляется макрокоманда assert. Если в исходный код программы вы вставите перед оператором #include <assert.h> оператор #define NDEBUG («без отладки»), то функция assert будет воспринята как комментарий.
Возвращаемое значение
Нет.
Переносимость
Данная макрокоманда поддерживается на некоторых системах UNIX, включая Systems III и V, совместима с ANSI C.
Пример
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
struct ITEM {
int key;
int value;
};
void additem(struct ITEM *itemptr)
{
assert(itemptr != NULL);
}
int main(void)
{
additem(NULL);
return 0;
}