Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

matherr

[ Оглавление ]
               MATHERR
            
               #include <math.h>
               int matherr(x);
               struct exception *x;     информация  о  математических
         
                                        исключениях
               
               Описание.
            
               Функция matherr обрабатывает ошибки, порожденные  функциями
         математической   библиотеки.   Математические   функции  вызывают
         matherr, когда обнаружена ошибка. Пользователь  может  обеспечить
         различные объявления (определения) для функции matherr, выполняю-
         щие обработку специальных ошибок.
               Если  в  математической  процедуре возникла ошибка, matherr
         вызывается с указателем на  следующую  структуру  (объявленную  в
         <math.h>) как аргумент.
            
               struct exeption {
               int type;
               char *name;
               double arg1, arg2, retval;
               };
            
               Type  определяет  тип  математической ошибки. Он может быть
         одним из следующих значений, объявленных в <math.h>
      
          Значение                       Его смысл
                           
          DOMAIN               Ошибка области (определения) аргумента.
                           
          SING                 Особенность аргумента.
                           
          OVERFLOW             Ошибка диапазона (области) переполнения
                           
          UNDERFLOW            Ошибка диапазона потери значимости.
                
          TLOSS                Общая потеря значимости.
                           
          PLOSS                Частичная потеря значимости.
            
               Элемент структуры name является указателем на строку, окан-
         чивающуюся нулевым символом и содержащую имя  функции,  вызвавшей
         ошибку.  Элементы структуры arg1 и arg2 определяют значения, выз-
         вавшие ошибку. (Если задан только один аргумент, он  запоминается
         в  arg1).  Для заданной ошибки по умолчанию возвращается значение
         retval. Это значение можно изменить.  По  возвращаемому  значению
         можно  определить,  действительно  или  нет возникла ошибка. Если
         matherr возвращает 0, высвечивается сообщение об ошибке  и  errno
         устанавливается  в  приблизительное значение ошибки. Если matherr
         возвращает ненулевое значение, сообщение об ошибке не  высвечива-
         ется  и errno остается неизменной.
      
            
               Возвращаемое значение.
            
               Функция  matherr  в  случае ошибки возвращает 0 и ненулевое
         значение, если действие верно и успешно выполнено.
               См.также acos, asin, atan, atan2, bessel, ccabs, cosh, exp,
         hypot, log, pow, sin, sinh, sqrt, tan.
         
            
               Пример:
            
               #include <math.h>
               #include <string.h>
               /* вылавливает ошибки в вызовах процедур log и log10.  Если
         ошибка  является  результатом  отрицательного  аргумента  (ошибка
         DOMAIN), возвращается log или log10 для абсолютного значения  ар-
         гумента.  Появляется  сообщение об ошибке. Если ошибка является 0
         аргументом  или ошибка сгенерирована некоторой другой процедурой,
         действие выбирается по умолчанию */
               int matherr(x)
               struct exception *x;
               {
               if (x->type==DOMAIN) {
                 if(strsmp(x->name,"log")==0\0  {
                    x->retval=log(-(x->arg1));
                    return(1);
                    }
                 else if(strsmp(x->name,"log10")==0) {
                    x->retval=log10(-(x->arg1));
                    return(1);
                    }
               }
               return(0);
               /* используется действие по умолчанию */
               }
            
            
               _MEMAVL
            
               #include <malloc.h>    требуется только для объявления
                                      функции
               unsigned int_memavl();
               
               Описание.
            
               Функция _memavl возвращает приблизительный размер памяти  в
         байтах,  доступной  для  динамического  размещения в умалчиваемом
         сегменте данных.  Эта  функция  может  использоваться  с  calloc,
         malloc,  realloc в малой и средней моделях памяти и с _nmalloc во
         всех моделях памяти.
            
               Возвращаемое значение.
            
               Функция _memavl возвращает размер в байтах как  беззнаковое
         целое.
               См.также calloc, malloc, _freect, realloc, stackavail.
            
               Пример:
            
               main()
               {
               long *longptr;
               printf("Memory available before malloc=%u\n",
         
                     _memavl());
               longptr=(long*)malloc(5000*sizeof(long));
               printf("Memory available after malloc=%u\n",
                     _memavl());
               }
      

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог