Share via


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