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