CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
assert
assert
Функция Проверяет условия и возможность прерывания
выполнения программы.
Синтаксис #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.
Смотрите также abort.
Пример:
#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;
}
Результат
Assertion failed: itemptr != NULL,
file C:\BC\ASSERT.C, line 12
