В зависимости от типа вашей переменной, одна из 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)
в этом отношении ...)
Заголовки Objective-C Apple и GNU также включают макрос ABS()
, который не зависит от типа.Однако я не рекомендую использовать ABS()
, так как это не гарантирует безопасность от побочных эффектов.Например, ABS(a++)
будет иметь неопределенный результат.
Если вы используете C ++ или Objective-C ++, вы можете ввести заголовок <cmath>
и использовать std::abs()
, который является шаблономдля всех стандартных целочисленных типов и типов с плавающей точкой.