abs, _abs64
Calcule la valeur absolue.
int abs(
int n
);
long abs(
long n
); // C++ only
long long abs(
long long n
); // C++ only
double abs(
double n
); // C++ only
long double abs(
long double n
); // C++ only
float abs(
float n
); // C++ only
__int64 _abs64(
__int64 n
);
Paramètres
- n
Valeur de type entier.
Valeur de retour
La fonction abs retourne la valeur absolue de son paramètre. Aucun retour d'erreur.
Notes
Comme C++ permet la surcharge, vous pouvez appeler les surcharges de abs qui acceptent et retournent les valeurs long, long long, float, double et long double. Dans un programme C, abs prend et retourne toujours une valeur int.
Spécifique à Microsoft
Comme la plage d'entiers négatifs qui peuvent être représentés en utilisant un type intégral est plus importante que la plage d'entiers positifs qui peuvent être représentés en utilisant ce type, il est possible de fournir un argument à abs qui ne peut pas être converti. Si la valeur absolue de l'argument ne peut pas être représentée par le type de retour, les fonctions abs retournent la valeur d'argument sans la modifier. Plus spécifiquement, abs(INT_MIN) retourne INT_MIN, labs(LONG_MIN) retourne LONG_MIN, llabs(LLONG_MIN) retourne LLONG_MIN et _abs64(_I64_MIN) retourne _I64_MIN. Cela signifie que les fonctions abs ne peuvent pas être utilisées pour garantir une valeur positive.
Fin spécifique à Microsoft
Configuration requise
Routine |
En-tête requis |
---|---|
abs |
<math.h> |
_abs64 |
<stdlib.h> |
Exemple
Ce programme calcule et affiche les valeurs absolues de plusieurs nombres.
// crt_abs.c
// Build: cl /W3 /TC crt_abs.c
// This program demonstrates the use of the abs function
// by computing and displaying the absolute values of
// several numbers.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <limits.h>
int main( void )
{
int ix = -4;
long lx = -41567L;
long long llx = -9876543210LL;
__int64 wx = -1;
// absolute 32 bit integer value
printf_s("The absolute value of %d is %d\n", ix, abs(ix));
// absolute long integer value
printf_s("The absolute value of %ld is %ld\n", lx, labs(lx));
// absolute long long integer value
printf_s("The absolute value of %lld is %lld\n", llx, llabs(llx));
// absolute 64 bit integer value
printf_s("The absolute value of 0x%.16I64x is 0x%.16I64x\n", wx,
_abs64(wx));
// Integer error cases:
printf_s("Microsoft implementation-specific results:\n");
printf_s(" abs(INT_MIN) returns %d\n", abs(INT_MIN));
printf_s(" labs(LONG_MIN) returns %ld\n", labs(LONG_MIN));
printf_s(" llabs(LLONG_MIN) returns %lld\n", llabs(LLONG_MIN));
printf_s(" _abs64(_I64_MIN) returns 0x%.16I64x\n", _abs64(_I64_MIN));
}