abs, _abs64
Vypočítá absolutní hodnotu.
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
);
Parametry
- n
Hodnota typu Integer.
Vrácená hodnota
Funkce abs vrátí absolutní hodnotu parametru.Není vrácena žádná chyba.
Poznámky
Protože jazyk C++ umožňuje přetížení, můžete volat přetížení abs, která používají a vrací hodnoty long, long long, float, double a long double.V programu v jazyce C abs vždy převezme a vrátí int.
Specifické pro Microsoft
Protože oblast záporných celých čísel, která lze znázornit pomocí jakéhokoli integrálního typu, je větší než rozsah kladných celých čísel, která lze znázornit pomocí tohoto typu, je možné zadat argument do abs, které nelze převést.Pokud absolutní hodnota argumentu nemůže být reprezentována návratovým typem, funkce abs vrátí nezměněnou hodnotu argumentu.Konkrétně abs(INT_MIN) vrací INT_MIN, labs(LONG_MIN) vrací LONG_MIN, llabs(LLONG_MIN) vrací LLONG_MIN a _abs64(_I64_MIN) vrací _I64_MIN.To znamená, že funkce abs nelze použít k zajištění kladné hodnoty.
Specifické pro End Microsoft
Požadavky
Rutina |
Požadované záhlaví |
---|---|
abs |
<math.h> |
_abs64 |
<stdlib.h> |
Příklad
Tento program vypočítá a zobrazí absolutní hodnoty několik čísel.
// 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));
}