ИМЯ
abs, labs, llabs, imaxabs − вычисляет абсолютное значение (модуль) целого числа.
СИНТАКСИС
#include <stdlib.h>
int
abs(int j);
long int labs(long int j);
long long int llabs(long long int j);
#include <inttypes.h>
intmax_t imaxabs(intmax_t j);
ОПИСАНИЕ
Функция abs() вычисляет абсолютное значение (модуль) целочисленного аргумента j. Функции labs(), llabs(), и imaxabs() вычисляют абсолютное значение аргумента j, который имеет соответствующий целочисленный тип.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Возвращает модуль целочисленного аргумента.
СООТВЕТСТВИЕ СТАНДАРТАМ
SVID 3, POSIX.1, BSD 4.3, ISO/IEC 9899. POSIX.1 (редакция 1996) требует наличия только функции abs(). ISO/IEC 9899:1990 (C89) включает в себя только функции abs() и labs(); функции llabs() и imaxabs() были добавлены в C99.
ЗАМЕЧАНИЯ
Результат вычисления абсолютного значения наибольшего по модулю отрицательного целого числа не определен.
Функция llabs() включена в glibc начиная с версии 2.0, но не присутствует в libc5 или libc4. Функция imaxabs() включена в glibc начиная с версии 2.1.1.
Для того, чтобы появилось объявление функции llabs(), может потребоваться объявить _ISOC99_SOURCE или _ISOC9X_SOURCE (зависит от версии glibc) до включения стандартных заголовочных файлов.
GCC обрабатывает abs() и labs() как встроенные функции. GCC 3.0 точно так же обрабатывает еще и llabs() и imaxabs().