From ae942840140e38835e562e8d235578c017d00766 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 17 Nov 2015 02:31:11 +0100 Subject: add macros for abs, labs, llabs, and imaxabs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- include/inttypes.h | 3 ++- include/stdlib.h | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/inttypes.h b/include/inttypes.h index 9463412..d99b334 100644 --- a/include/inttypes.h +++ b/include/inttypes.h @@ -57,8 +57,9 @@ imaxdiv_t imaxdiv(intmax_t, intmax_t) * @param value The integer. * @return The absolute value of the integer. */ -intmax_t imaxabs(intmax_t) +intmax_t (imaxabs)(intmax_t) __GCC_ONLY(__attribute__((__const__))); +#define imaxabs(value) ((intmax_t)value < 0 ? -(intmax_t)value : (intmax_t)value) diff --git a/include/stdlib.h b/include/stdlib.h index fe0c5f7..075d3a4 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -107,8 +107,9 @@ lldiv_t lldiv(long long, long long) * @param value The integer. * @return The absolute value of the integer. */ -int abs(int) +int (abs)(int) __GCC_ONLY(__attribute__((__const__))); +#define abs(value) ((int)value < 0 ? -(int)value : (int)value) /** * Return the absolute value of an integer. @@ -121,8 +122,9 @@ int abs(int) * @param value The integer. * @return The absolute value of the integer. */ -long int labs(long int) +long int (labs)(long int) __GCC_ONLY(__attribute__((__const__))); +#define labs(value) ((long int)value < 0 ? -(long int)value : (long int)value) /** * Return the absolute value of an integer. @@ -135,8 +137,9 @@ long int labs(long int) * @param value The integer. * @return The absolute value of the integer. */ -long long int llabs(long long int) +long long int (llabs)(long long int) __GCC_ONLY(__attribute__((__const__))); +#define llabs(value) ((long long int)value < 0 ? -(long long int)value : (long long int)value) #if !defined(__PORTABLE) -- cgit v1.2.3-70-g09d2