_Control
_control87
Функция Манипулирует словом управления операций с плавающей точкой.
Синтаксис #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.
Смотрите также 7, 7.
Пример: /* маскирование исключительных ситуаций вычисле- ний с плавающей точкой */ _control87(MCW_EM,MCW_EM);