Sdílet prostřednictvím


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);
}