Partilhar via


Aviso C4738 (compilador) (nível 3)

armazenando o flutuante de 32 bits na memória, possível perda de desempenho

C4738 avisa que o resultado de uma atribuição, a conversão tiver passado, o argumento, ou outra operação pode precisar ser arredondado ou que a operação foi executada fora dos registros e necessárias para uso da memória (spill). Isso pode resultar na perda de desempenho.

Para resolver esse aviso e arredondando evitar isso, compile com /fp: rápido ou use doubles em vez de floatS.

Para resolver esse aviso e não executar fora dos registros, alterar a ordem de computação e alterar seu uso de inlining

Esse aviso é desativada por padrão. Para obter mais informações, consulte Avisos do compilador que estão por padrão.

Exemplo

O seguinte exemplo gera 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);
}