Freigeben über


fdim, fdimf, fdiml

Bestimmt den positiven Unterschied zwischen den ersten und zweiten Werten.

Syntax

double fdim(
   double x,
   double y
);

float fdim(
   float x,
   float y
); //C++ only

long double fdim(
   long double x,
   long double y
); //C++ only

float fdimf(
   float x,
   float y
);

long double fdiml(
   long double x,
   long double y
);

#define fdim(X) // Requires C11 or higher

Parameter

x
Der erste Wert.

y
Der zweite Wert.

Rückgabewert

Gibt den positiven Unterschied zwischen x und y zurück:

Rückgabewert Szenario
x-y if x>y
0 if x<= y

Andernfalls wird einer der folgenden Fehler zurückgeben:

Abgang Return
Überlaufbereichsfehler +HUGE_VAL, +HUGE_VALF, oder +HUGE_VALL
Unterlaufbereichsfehler Richtiger Wert (nach dem Runden)
x oder y ist NaN NaN

Fehler werden gemäß der Angaben in _matherr gemeldet.

Hinweise

Da C++ das Überladen zulässt, können Sie Überladungen von fdim aufrufen, die float und long double-Typen verwenden und zurückgeben. In einem C-Programm, es sei denn, Sie verwenden das Makro <tgmath.h>, um diese Funktion aufzurufen, übernimmt fdim und gibt immer ein double zurück.

Wenn Sie das Makro <tgmath.h>fdim() verwenden, bestimmt der Typ des Arguments, welche Version der Funktion ausgewählt ist. Ausführliche Informationen finden Sie unter Typgengenerische Mathematik.

Diese Funktion entspricht fmax(x - y, 0), mit Ausnahme der Behandlung von NaN.

Anforderungen

Funktion C-Header C++-Header
fdim, fdimf, fdiml <math.h> <cmath>
fdim-Makro <tgmath.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Weitere Informationen

Alphabetische Funktionsreferenz
fmax, fmaxf, fmaxl
abs, labs, llabs, _abs64