assert.h
Заголовні файли C |
---|
assert.h — заголовний файл стандартної бібліотеки мови програмування С, в якому оголошується макрос препроцесора мови С assert()
. Цей макрос реалізує висловлювання, котре може використовуватись для отримання припущень зроблених програмою.
Макрос assert()
додає до програми процедуру діагностики. Після виконання, якщо визначення хибне (тобто, порівняння рівне 0), assert() пише інформацію про виклик, котрий виконався з помилкою на stderr і викликає функцію abort()
. Інформація, котра пишеться на stderr включає у себе:
- текст визначення, рівного 0
- ім'я файлу з джерельним кодом (the predefined macro __FILE__)
- рядок у файлу з джерельним текстом (the predefined macro __LINE__)
Для того, щоб відключити перевірку не обов'язково вилучати з коду або коментувати оголошення макроса, достатньо лиш оголосити ще один макрос -- NDEBUG у програмі перед #include <assert.h>
, тоді оголошення макроса assert()
матиме такий вигляд:
#define assert(ignore)((void) 0)
а тому ніяк не впливатиме на роботу програми.
Макрос assert()
реалізований у вигляді макроса, а не функції. Якщо макрос assert забраний для можливості викликати саму функцію assert, то правильне функціонування коду не гарантується.
#include <stdio.h>
#include <assert.h>
int main (void)
{
FILE *fd;
fd = fopen ("file.txt", "r");
assert (fd);
fclose (fd);
return 0;
}
У даному прикладі макрос assert()
спрацює у випадку, якщо функція fopen()
виконається з помилкою.
- assert.h [Архівовано 13 жовтня 2008 у Wayback Machine.] на OpenGroup