Единственная документация, которую я могу найти (на MSDN или иным способом), заключается в том, что вызов _fpreset()
"сбрасывает пакет с плавающей запятой". Что такое пакет с плавающей запятой? Очищает ли это также слово состояния FPU? Я вижу документацию, в которой говорится, что при восстановлении с SIGFPE вызывать _fpreset()
, но разве _clearfp()
тоже не делает этого? Нужно ли звонить обоим?
Я работаю над приложением, которое разоблачает некоторые исключения FP (используя _controlfp()
). Когда я хочу сбросить FPU в состояние по умолчанию (скажем, при вызове кода .NET), я должен просто вызвать _clearfp()
, _fpreset()
или и . Это критичный для производительности код, поэтому я не хочу вызывать оба, если мне не нужно ...