abs, labs, llabs, imaxabs - cppreference.com (original) (raw)

| Defined in header <stdlib.h> | | | | ----------------------------------------------------------------------------------------- | | ----------- | | int abs( int n ); | | | | long labs( long n ); | | | | long long llabs( long long n ); | | (since C99) | | Defined in header <inttypes.h> | | | | intmax_t imaxabs( intmax_t n ); | | (since C99) |

Computes the absolute value of an integer number. The behavior is undefined if the result cannot be represented by the return type.

[edit] Parameters

[edit] Return value

The absolute value of n (i.e. |n|), if it is representable.

[edit] Notes

In 2's complement systems, the absolute value of the most-negative value is out of range, e.g. for 32-bit 2's complement type int, INT_MIN is -2147483648, but the would-be result 2147483648 is greater than INT_MAX, which is 2147483647.

[edit] Example

#include <limits.h> #include <stdio.h> #include <stdlib.h>   int main(void) { printf("abs(+3) = %d\n", abs(+3)); printf("abs(-3) = %d\n", abs(-3));   // printf("%+d\n", abs(INT_MIN)); // undefined behavior on 2's complement systems }

Output:

[edit] References

[edit] See also