_fpreset
float.h:インデックス への移動
ヘッダーファイル
float.h
カテゴリ
演算ルーチン
プロトタイプ
void _fpreset(void);
説明
浮動小数点演算パッケージを再初期化します。
_fpreset は,浮動小数点演算パッケージを再初期化します。通常,この関数は,system 関数,exec... 系関数,または spawn... 系関数と組み合わせて使用されます。また,longjmp を呼び出す前に浮動小数点エラーから回復するためにも使用されます。
メモ: 80x87 コプロセッサがプログラムで使用される場合は,子プロセス(system 関数,exec... 系関数,または spawn... 系関数によって実行される)が親プロセスの浮動小数点状態を変更することがあります。
- 80x87 を使用する場合は,次の点に注意します。
- 浮動小数点式の評価中に,system 関数,exec... 系関数,または spawn... 系関数を呼び出さないようにします。
子プロセスが 80x87 で浮動小数点操作を行った可能性がある場合は,system 関数,exec... 系関数,または spawn... 系関数を使用した後で _fpreset を呼び出して,浮動小数点状態をリセットします。
戻り値
なし。
コード例
#include <process.h> #include <float.h> #include <stdio.h> int safe_fpu_exec(wchar_t* program) { /* Spawn another process with NOWAIT flag */ int pid = _wspawnl(P_NOWAIT, program, NULL); int exitCode; /* Check for error */ if (pid == -1) return -1; /* Wait for the application to finish */ cwait(&exitCode, pid, 0); /* Reset the FPU state since the child process might have altered it */ _fpreset(); return exitCode; }
移植性
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |