?
This document uses PHP Chinese website manual Release
在頭文件<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) |
計(jì)算整數(shù)的絕對值。如果結(jié)果不能由返回類型表示,則行為未定義。
n | - | 整數(shù)值 |
---|
n
(i.e. |n|
)的絕對值,如果它是可表示的。
在2的補(bǔ)碼系統(tǒng)中,最大負(fù)值的絕對值超出范圍,例如對于32位2的補(bǔ)碼類型int,INT_MIN是-2147483648,但是可能結(jié)果2147483648大于INT_MAX,即2147483647。
#include <stdio.h>#include <stdlib.h>#include <limits.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) = 3abs(-3) = 3
C11標(biāo)準(zhǔn)(ISO / IEC 9899:2011):
7.8.2.1 imaxabs函數(shù)(p:218)
7.22.6.1 abs,labs和llabs函數(shù)(p:356)
C99標(biāo)準(zhǔn)(ISO / IEC 9899:1999):
7.8.2.1 imaxabs函數(shù)(p:199-200)
7.20.6.1 abs,labs和llabs函數(shù)(p:320)
C89 / C90標(biāo)準(zhǔn)(ISO / IEC 9899:1990):
4.10.6.1 abs函數(shù)
4.10.6.3實(shí)驗(yàn)室功能