コンパイラの警告 (レベル 3) C4738
更新 : 2007 年 11 月
エラー メッセージ
メモリに 32 ビットの浮動結果を格納します。パフォーマンスが低下する可能性があります
C4738 は、代入、キャスト、渡された引数、その他の演算の結果、丸めが必要になる可能性があるか、演算によってレジスタが不足してメモリの使用が必要になった (あふれ) ことを警告します。この結果、パフォーマンスが低下することがあります。
この警告を解決して丸めを回避するには、/fp:fast を指定してコンパイルするか、float の代わりに double を使用します。
この警告を解決してレジスタの不足を回避するには、演算の順序を変更して、インライン展開の使用を変更します。
既定では、この警告はオフに設定されています。詳細については、「Compiler Warnings That Are Off by Default」を参照してください。
使用例
次の例では C4738 警告が生成されます。
// C4738.cpp
// compile with: /c /fp:precise /O2 /W3
// processor: x86
#include <stdio.h>
#pragma warning(default : 4738)
float func(float f)
{
return f;
}
int main()
{
extern float f, f1, f2;
double d = 0.0;
f1 = func(d);
f2 = (float) d;
f = f1 + f2; // C4738
printf_s("%f\n", f);
}