Derleyici Uyarısı (Düzey 3) C4738
32 bit kayan sonuç bellekte depolanıyor, olası performans kaybı
C4738, atama, atama, geçirilen bağımsız değişken veya başka bir işlemin sonucunun yuvarlanması veya işlemin yazmaçların bitip bellek kullanması (taşma) gerektiği konusunda uyarır. Bu, performans kaybına neden olabilir.
Bu uyarıyı çözmek ve yuvarlamaktan kaçınmak için /fp:fast ile derleyin veya yerine float
kullanındouble
.
Bu uyarıyı çözmek ve yazmaçların tükenmesini önlemek için hesaplama sırasını değiştirin ve inlining kullanımınızı değiştirin
Bu uyarı varsayılan olarak kapalıdır. Daha fazla bilgi için bkz . Varsayılan Olarak Kapalı Olan Derleyici Uyarıları.
Örnek
Aşağıdaki örnek C4738 oluşturur:
// 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);
}