Hex*_*ark 5 c macros xcode function objective-c
我对这两个在xcode,ABS(A)和abs(int)中的区别感到困惑.似乎也无法在网上找到任何解释.我应该使用哪个?我实际上在研究加速度计.使用ABS(A)和abs(int)给出了两个不同的值.使用abs(int)有时会产生一个inf值,而ABS(A)会给我一个不同的值,但从不给inf.谢谢!
http://www.switchonthecode.com/tutorials/iphone-tutorial-reading-the-accelerometer
Hab*_*bib 16
abs()
适用于int,意思abs(-10.123)
是返回10
,ABS()
而是一个宏,NSObjCRuntime.h
从中返回一个值,其类型是参数的类型.
小智 6
NSObjCRuntime.h的ABS定义是:
#define ABS(a) ({typeof(a) _a = (a); _a < 0 ? -_a : _a; })
Run Code Online (Sandbox Code Playgroud)
所以它返回带有参数类型的值.另一方面,abs有原型
int abs (int number)
Run Code Online (Sandbox Code Playgroud)
所以它返回int类型的值.