如果我在 Xcode 的调试控制台中输入
(lldb) p (float)fabsf(-5.0f)
(float) $22 = 0
(lldb) p (double)fabsf(-5.0f)
(double) $23 = 5
其中第一个结果转换为 float (没有转换,p
命令无法识别fabsf
返回类型) 无论参数如何都是错误的。
但在库 header 中,fabs
的返回类型显然是一个 float 。谁能给我解释一下?
ios9.2: math.h
...
extern float fabsf(float);
extern double fabs(double);
extern long double fabsl(long double);
...
是否有一些我不知道的 lldb 机制或问题,或者真的是语言实现问题(猜不是......)?
最佳答案
很确定 Xcode 7 中的 lldb 控制台存在错误,并且 a ticket是为它创造的。
Xcode 8.0 中不再存在该问题。
关于objective-c - 在 Objective-C 中,fabsf() 的结果类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35136918/