Функция Манипулирует словом управления операций с плавающей
точкой.
Синтаксис #include
unsigned int _control87(unsigned int newcw,
unsigned int mask);
Файл, содержащий float.h
прототип
Описание _control87 извлекает и изменяет слово управления
операциями с плавающей точкой.
Слово управления плавающей точки имеет тип
unsigned int, в котором бит за битом перечислены
режимы операций с плавающей точкой, а именно: ре-
жимы точности, бесконечности и округления. Изме-
нение этих режимов позволяет маскировать исключи-
тельные состояния операций с плавающей точкой.
_control87 сравнивает биты в mask с битами в
newcw. Если бит в mask равен 1, то соответствую-
щий бит в new содержит новое значение для такого
же бита в слове управления операций с плавающей
точкой, а _control87 устанавливает этот бит в
слове управления в новое значение.
Пример:
Исходное слово управления: 0100 0011 0110 0011
mask 1000 0001 0100 1111
newcw 1110 1001 0000 0101
Изменяющиеся биты 1xxx xxx1 x0xx 0101
Если mask равен 0, то _control87 возвращает слово
управления операциями с плавающей точкой без из-
менения.
_control87 не изменяет бит Denormal, поскольку
Turbo C++ использует ненормальную обработку иск-
лючительных ситуаций.
Возвращаемое Биты в возвращаемом значении представляют собой
значение новое слово управления операциями с плавающей точ-
кой. Полное описание битов, возвращаемых функцией
_control87, приведено в в файле заголовка
float.h.
Переносимость _control87 уникальна для DOS.
Смотрите также _clear7, _fpresetsignal_status7.
Пример: /* маскирование исключительных ситуаций вычисле-
ний с плавающей точкой */
_control87(MCW_EM,MCW_EM);