функции С и C++, библиотек C++Builder, API Windows________________805

Фигурирующие в приведенном описании макросы DBL_MAX, DBL_MIN,
LDBL_MAX и LDBL_MIN определены в файле float.h.

Пример

Приведенный ниже пример показывает функцию, обрабатывающую ошибку
типа DOMAIN функции sqrt (корень из отрицательного числа), заменяя результат
на корень из положительного числа:

int matherr (struct exception *a)
(

if (a->type == DOMAIN)

if ('strcrnp(a->name,"sqrt")) (
a->retval = sqrt (-(a->argl));

return 1;

)
return 0;

14.5.5 assert — макрос диагностики

Синтаксис

ttinclude <assert.h>
void assert(int test);

Описание

Макрос assert используется в программах для диагностики. Если при расши-
рении макроса значение параметра test ложно (равно нулю), то assert выдает в
стандартный файл ошибок stderr сообщение:

Assertion failed: test, file <имя файла>, line <номер строки>

После этого макрос assert производит вызов функции abort.
Если в исходном файле перед директивой

ttinclude <assert.h>
появляется директива препроцессора

ttdefine NDEBUG

то все последующие макросы assert игнорируются. Таким образом вы можете ввес-
ти в свое приложение какие-то проверки, необходимые для отладки, а затем в
окончательном файле отключить их директивой NDEBUG.

14.6 Математические функции

14.6.1 Константы, используемые в математических выражениях

константа	описание	значение
М Е	число е	2.71828182845904523536
MLOG2E	log2(e) — логарифм по основанию 2 от е	1.44269504088896340736
MJLOG10E	logio(e) — логарифм десятичный от е	0.434294481903251827651
MLN2	ln(2) — логарифм натуральный от 2	0.693147180559945309417