Megosztás a következőn keresztül:


Fordító figyelmeztetés (3. szint) C4738

32 bites lebegőpontos tárolás memóriavesztést, lehetséges teljesítményvesztést eredményez

Megjegyzések

A C4738 figyelmeztet, hogy egy hozzárendelés, leadott, átadott argumentum vagy más művelet eredményét le kell kerekíteni, vagy hogy a művelet elfogyt a regiszterekből, és memóriahasználatra (kiömlött) van szükség. Ez teljesítménycsökkenést okozhat.

A figyelmeztetés feloldásához és a kerekítés elkerüléséhez a /fp:fast vagy ahelyett használja double a fordítást float.

A figyelmeztetés feloldásához és a regiszterek elfogyásának elkerüléséhez módosítsa a számítás sorrendjét, és módosítsa alining használatát

Ez a figyelmeztetés alapértelmezés szerint ki van kapcsolva. További információ: A fordító alapértelmezés szerint ki van kapcsolva.

Example

A következő példa c4738-at hoz létre:

// 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);
}