/*********************************************
* @brief 求绝对值
* @param n 要计数绝对值的整数
* @return 绝对值
********************************************/
intmax_t imaxabs(intmax_t n);
!subtitle:说明
计算 intmax_t 类型整数的绝对值。
注意,
intmax_t可以表示的负数范围比正数范围大,无法计算 INTMAX_MIN 的绝对值。
!subtitle:参数
n - 要计算绝对值的整数
!subtitle:返回值
参数 n 的绝对值。
#include <stdio.h>
#include <inttypes.h>
int main(void)
{
printf("%" PRIiMAX "\n", imaxabs(0)); // 0 的绝对值
printf("%" PRIiMAX "\n", imaxabs(233)); // 正数的绝对值
printf("%" PRIiMAX "\n", imaxabs(-10086)); // 负数的绝对值
return 0;
}
运行结果:
0
233
10086
C23 standard (ISO/IEC 9899:2024):
7.8.2.1 The imaxabs function (p: TBD)
7.22.6.1 The abs, labs and llabs functions (p: TBD)
C17 standard (ISO/IEC 9899:2018):
7.8.2.1 The imaxabs function (p: 159)
7.22.6.1 The abs, labs and llabs functions (p: 259)
C11 standard (ISO/IEC 9899:2011):
7.8.2.1 The imaxabs function (p: 218)
7.22.6.1 The abs, labs and llabs functions (p: 356)
C99 standard (ISO/IEC 9899:1999):
7.8.2.1 The imaxabs function (p: 199-200)
7.20.6.1 The abs, labs and llabs functions (p: 320)