Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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);
}