在Objective-C中,fabsf()的结果类型错误

jal*_*one 5 objective-c

如果在Xcode的调试控制台中输入

(lldb) p (float)fabsf(-5.0f)
(float) $22 = 0
(lldb) p (double)fabsf(-5.0f)
(double) $23 = 5
Run Code Online (Sandbox Code Playgroud)

无论参数如何,第一个结果转换为浮动(没有转换,p命令无法识别fabsf返回类型)都是错误的.

但是在库头文件中,返回类型fabs显然是一个浮点数.有人可以解释一下吗?

ios9.2:math.h

...
extern float fabsf(float);
extern double fabs(double);
extern long double fabsl(long double);
...
Run Code Online (Sandbox Code Playgroud)

是否存在一些我不了解的lldb机制或问题,或者实际上是语言实现问题(猜测不是......)?

jal*_*one 3

很确定 Xcode 7 中的 lldb 控制台存在错误,并为此创建了一个票证。

该问题在 Xcode 8.0 中不再存在。