コンパイラの警告 (レベル 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);
}