Duplicar posibles:
Why does gdb evaluate sqrt(3) to 0?GDB da salida extraña al utilizar funciones math.h
C novato aquí. Debe haber una explicación obvia de por qué gdb da salidas extrañas al tratar de usar funciones math.h en línea. Por ejemplo, se supone que la función fabs
a continuación toma el valor absoluto y devuelve un doble.
(gdb) p cos(2*3.141/4)
$13 = 1073291460
(gdb) p fabs(-3)
$14 = 0
(gdb) p fabs(3)
$15 = 0
(gdb) p fabs(3.333)
$16 = 1
(gdb) p (double) fabs(-3.234)
$17 = 1
(gdb) p (double) fabs((double)-3.234)
$18 = 1
(gdb) p ((double(*)(double))fabs)(-3)
$19 = 682945
El código que estoy usando math.h ha incluido, y el código real aparece para ejecutar correctamente, aunque el mismo código colocado en línea en GDB produce resultados extraños. Podría ignorarlo, pero parece una buena oportunidad de aprendizaje.
El moderador puede sentirse libre para cerrar (por ejemplo, eliminar) esto si es necesario, ya que es una víctima. – ggkmath