C4738 (úroveň 3) upozornění kompilátoru
ukládání do paměti, možné ztrátě výkonu 32 bit float výsledek
C4738 varuje výsledek přiřazení odevzdaných předaný argument, nebo jiné operace muset být zaokrouhlena, nebo že operace nemá dostatek registry a potřebné k použití paměti (přesahu).To může způsobit ztrátu výkonu.
Toto upozornění vyřešit a zabránit zaokrouhlování, kompilace s /fp:fast nebo doublemísto s floats.
Chcete-li vyřešit toto upozornění a předejít z registrů, změnit pořadí výpočtu a používání inlining
Ve výchozím nastavení je vypnuto upozornění.Další informace naleznete v tématu Kompilátoru upozornění, že jsou mimo standardně.
Příklad
Následující ukázka generuje 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);
}