Dela via


Kompilatorvarning (nivå 3) C4738

Lagring av 32-bitars float resulterar i minne, eventuell prestandaförlust

Anmärkningar

C4738 varnar för att resultatet av en tilldelning, gjuten, skickad argument eller annan åtgärd kan behöva avrundas eller att åtgärden tog slut på register och behövde använda minne (spill). Detta kan leda till prestandaförlust.

Kompilera med /fp:fast eller använd double i stället för för att lösa den här varningen och undvika avrundning float.

Lös den här varningen och undvik att få slut på register genom att ändra ordningen på beräkningen och ändra din användning av inlining

Den här varningen är inaktiverad som standard. Mer information finns i Kompilatorvarningar som är inaktiverade som standard.

Example

I följande exempel genereras 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);
}