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

标签 objective-c

如果我在 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/

相关文章:

iphone - 解析词典并使用外卡显示大量匹配项的最佳方法是什么

objective-c - 让NSSlider以其他方式移动?

ios - 如何将枚举类型的参数传递给 .h 和 .m 文件中的方法

objective-c - 按下Enter时如何使NSTextfield失去焦点?

ios 如何在用户单击按钮时关闭屏幕

objective-c - AVAssetReader/Writer 只适用于某些设备?

objective-c - ABAddressBookRequestAccessWithCompletion 在 iOS 10 上崩溃

ios - drawRect - 图像滚动性能

iPhone应用程序内部录音

ios - NSXMLParser 代码的 EXC_BAD_ACCESS