assert – вывод сообщения об ошибке и завершение работы программы
Синтаксис:
#include < assert.h >
void assert (int arg);
Аргументы:
arg – проверяемое условие.
Возвращаемое значение:
Нет.
Описание:
Макрооперация assert проверяет значение аргумента arg и если аргумент равен нулю, то выводится диагностическое сообщение, содержащее имя программы, имя файла, номер строки и имя функции в которой была вызвана макрооперация assert. В противном случае не производится никаких действий.
Если до оператора #include < assert.h > была определена define-переменная NDEBUG, то макрооперация assert не производит никаких действий (в том числе не производится проверка значения аргумента arg).
Пример:
В примере создаются три переменные: arg1, arg2, arg3. Далее сравниваются переменные arg2 и arg3 и, если arg3 больше arg2, то переменной arg1 присваивается 0 (считаем, что программа отработала не верно), в противном случае 1 (считаем, что программа отработала верно). Далее с помощью макрооперации assert проверяется значение аргумента arg1 и если arg1 равен нулю, то выводится диагностическое сообщение и завершается работа программы.
#include < stdio.h > //Для puts
#include < assert.h > //Для assert
int main (void)
{
int arg1=0, arg2=5, arg3=15;
puts (“Start work”);
//Проверка условия
if (arg3>arg2) arg1=0;
else arg1=1;
//Проверка верности функционирования программы
assert (arg1);
puts (“End work”);
return 0;
}
| |
Результат:
Start work
ts: test.c:13: main: Assertion ‘arg1’ failed
Аварийный останов
|
Смотри так же:
assert
abort(),
perror(),
strerror().
|