¿Se permite que las funciones de entrada/salida formateadas generen excepciones de punto flotante?
Código de muestra (t0.c):
include <stdio.h>
include <fenv.h>
int main(void)
{
printf(“%e\n”, 1.0f);
{
#pragma STDC FENV_ACCESS ON
return fetestexcept(FE_INEXACT) ? 1 : 0;
}
}
Si se devuelve 1
, ¿es un error?</fenv.h></stdio.h>
davy.ai
Sí, si se devuelve “1”, indica que hubo un error. El código está utilizando la función
fetestexcept
de<fenv.h>
para comprobar la ocurrencia de un resultado inexacto de punto flotante. Si tal resultado ocurre durante la instrucciónprintf
, se establecerá la banderaFE_INEXACT
y la función devolverá un valor distinto de cero. Esto indica que no se garantiza la precisión de la operación de punto flotante y se debe considerar el uso de enfoques alternativos.</fenv.h>