C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Нетология

 _fpreset / f / Библиотечн. функции Borland C++

_fpreset

Функция            Выполняет рестарт математического пакета операций
-->






Функция Выполняет рестарт математического пакета операций

                   с плавающей точкой.

Синтаксис          #include<float.h>
                   void _fpreset();

Файл, содержащий   float.h
прототип

Описание           Функция _fpreset выполняет рестарт  математического
                   пакета операций с плавающей точкой.  Данная функция
                   обычно  используется  вместе  с  функциями  signal,
                   system, или функциями exec... или spawn...

                   Примечание. При работе  под  операционной  системой
                   DOS,  если  в программе используется математический
                   сопроцессор 80x87,  "дочерний" процесс (выполняемый
                   посредством функций system,  exec... или spawn...),
                   может  изменить  состояние  операций  с   плавающей
                   точкой "родительского" процесса.

                   Если вы   используете  сопроцессор  80x87,  примите
                   следующие предосторожности:

                   - Не  вызывайте  функции  exec...,   spawn...   или
                     system,  пока  выражение  с  плавающей  точкой не
                     вычислено.

                   - Для установки операций с плавающей  точкой  после
                     использования   функций   system,   exec...   или
                     spawn...  вызывайте функцию _fpreset (если только
                     есть    какой-либо   шанс   выполнения   дочерним
                     процессом   операций    с    плавающей    точкой,
                     посредством сопроцессора 8087/80287).

Возвращаемое       Отсутствует.
значение
                   
Переносимость      _fpreset уникальна для DOS.
                   
Смотрите также     clear87, _control87, exec...,  spawn...,
                   _status87, system.

Пример:

#include<stdio.h>
#include<float.h>
#include<setjmp.h>
#include<signal.h>
#include<process.h>
#include<conio.h>

jmp_buf reenter;

/* определим программу обработки ошибочных ситуаций операций с
   плавающей точкой */
void float_trap(int sig)
{
   printf("Прерывание по ошибке операций с плавающей точкой.\n");
   printf("Для продолжения работы нажмите любую клавишу...\n");
   getch();
   /* рестарт сопроцессора или эмулятора */
   _fpreset();
   /* вернутся в точку, в которой возникла ошибка */
   longjmp(reenter,-1);
}
int main(void)
{
   float one = 3.14, two = 0.0;
   /* установить программу обработки исключительных ситуаций операций
      с плавающей точкой */
   if(signal(SIGFPE,float_trap) == SIG_ERR)
   {
      printf("Ошибка при установке программы обработки прерываний\n");
      exit(3);
   }
   printf("Генерация математической ошибки. Нажмите клавишу...\n");
   getch();
   if(setjmp(reenter)==0)
     one /* two;
   printf("Возврат после обработки прерывания.\n");
   return 0;
}



Letyshops [lifetime]