在Objective-C中转换为绝对值

red*_*ory 185 objective-c

如何在Objective-C中将负数转换为绝对值?

-10

10?

Jon*_*pan 456

根据您的变量,一个类型abs(int),labs(long),llabs(long long),imaxabs(intmax_t),fabsf(float),fabs(double),或fabsl(long double).

这些函数都是C标准库的一部分,因此在Objective-C和plain C中都存在(并且通常也可以在C++程序中使用).

(唉,没有habs(short)功能.或者scabs(signed char)就此而言......)


Apple和GNU的Objective-C头文件还包含一个ABS()与类型无关的宏.我不建议使用,ABS()因为它不能保证是副作用安全的.例如,ABS(a++)将有一个未定义的结果.


如果您正在使用C++或Objective-C++,则可以引入<cmath>标头和使用std::abs(),这是所有标准整数和浮点类型的模板.

  • 或者您可以使用ABS宏,它适用于任何数字类型. (33认同)