Описание функций Си

_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);



Содержание раздела