回答:
あなたの変数の型、のいずれかに応じてabs(int)、labs(long)、llabs(long long)、imaxabs(intmax_t)、fabsf(float)、fabs(double)、またはfabsl(long double)。
これらの関数はすべてC標準ライブラリの一部であるため、Objective-CとプレーンCの両方に存在します(通常、C ++プログラムでも使用できます)。
(悲しいかな、habs(short)機能はありません。またはscabs(signed char)そのことについて...)
AppleおよびGNUのObjective-Cヘッダーには、ABS()型に依存しないマクロも含まれています。ABS()ただし、副作用に対して保証されていないため、使用はお勧めしません。たとえばABS(a++)、未定義の結果になります。
C ++またはObjective-C ++ <cmath>を使用している場合は、ヘッダーを組み込み、を使用できますstd::abs()。これは、すべての標準整数型および浮動小数点型用にテンプレート化されています。
ABS()は、すべてのコンパイラで副作用に対して安全ではありません。そのため、これを使用することはお勧めしません。
extern float fabsf(float); extern double fabs(double);