命名空间
变体
操作

abs、labs、llabs、imaxabs

来自 cppreference.com
< c‎ | numeric‎ | math
 
 
 
常用数学函数
类型
(C99)(C99)    

(C99)(C99)    

函数
基本操作
abslabsllabsimaxabs
(C99)(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小操作
(C99)
(C23)    
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)
(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)
(C99)
(C23)
(C23)
三角函数和双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
误差函数和伽马函数
(C99)
(C99)
(C99)
(C99)
最接近整数的浮点数操作
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点操作函数
(C99)(C99)
(C99)(C23)
(C99)
缩窄操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子和量子指数函数
十进制重新编码函数
全序和有效载荷函数
分类
(C99)
(C99)
(C99)
(C23)
宏常量
特殊浮点数
(C99)(C23)
参数和返回值
(C99)(C99)(C99)(C99)(C99)    
错误处理
(C99)    

 
定义在头文件 <stdlib.h>
int        abs( int n );
long       labs( long n );
long long llabs( long long n );
(自 C99 起)
定义在头文件 <inttypes.h>
intmax_t imaxabs( intmax_t n );
(自 C99 起)

计算整数的绝对值。如果结果不能用返回值类型表示,则行为未定义。

内容

[编辑] 参数

n - 整数值

[编辑] 返回值

n 的绝对值(即 |n|),如果它是可表示的。

[编辑] 说明

在二进制补码系统中,最负值的绝对值超出了范围,例如对于 32 位二进制补码类型 intINT_MIN-2147483648,但预期结果 2147483648 大于 INT_MAX,后者是 2147483647

[编辑] 示例

#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
}

输出

abs(+3) = 3
abs(-3) = 3

[编辑] 参考

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.8.2.1 imaxabs 函数 (p: TBD)
  • 7.22.6.1 abs、labs 和 llabs 函数 (p: TBD)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.8.2.1 imaxabs 函数 (p: 159)
  • 7.22.6.1 abs、labs 和 llabs 函数 (p: 259)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.8.2.1 imaxabs 函数 (p: 218)
  • 7.22.6.1 abs、labs 和 llabs 函数 (p: 356)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.8.2.1 imaxabs 函数 (p: 199-200)
  • 7.20.6.1 abs、labs 和 llabs 函数 (p: 320)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 4.10.6.1 abs 函数
  • 4.10.6.3 labs 函数

[编辑] 另请参见

(C99)(C99)
计算浮点值的绝对值 (|x|)
(函数) [编辑]
(C99)(C99)(C99)
计算复数的大小
(函数) [编辑]
C++ 文档 用于 abs