Share via


Upozornění kompilátoru (úroveň 3) C4738

ukládání 32bitového plovoucího výsledku do paměti, možná ztráta

C4738 varuje, že výsledek přiřazení, přetypování, předaného argumentu nebo jiné operace může být potřeba zaokrouhlit nebo že operace vypršela z registrů a potřebovala použít paměť (přelití). To může vést ke ztrátě výkonu.

Chcete-li vyřešit toto upozornění a vyhnout se zaokrouhlování, kompilujte soubor /fp:fast nebo použijte double místo float.

Pokud chcete toto upozornění vyřešit a vyhnout se výpadku registrů, změňte pořadí výpočtů a upravte použití inliningu.

Toto upozornění je ve výchozím nastavení vypnuté. Další informace najdete v tématu Upozornění kompilátoru, která jsou ve výchozím nastavení vypnutá.

Příklad

Následující ukázka vygeneruje 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);
}