fmax
、 fmaxf
、 fmaxl
指定された 2 つの数値のうち、大きい方を特定します。
構文
double fmax(
double x,
double y
);
float fmax(
float x,
float y
); //C++ only
long double fmax(
long double x,
long double y
); //C++ only
float fmaxf(
float x,
float y
);
long double fmaxl(
long double x,
long double y
);
#define fmax(X, Y) // Requires C11 or higher
パラメーター
x
比較する最初の値。
y
比較する二番目の値。
戻り値
正常に終了した場合は x
または y
の大きい方を返します。 返される値は正確であり、どの形式の丸めにも依存しません。
それ以外の場合は、次の値のいずれかを返します。
問題点 | Return |
---|---|
x = NaN |
y |
y = NaN |
x |
x および y = NaN |
NaN |
この関数では、 _matherr
で指定されたエラーは使用されません。
解説
C++ ではオーバーロードが可能であるため、float
型と long double
型を受け取って返す fmax のオーバーロードを呼び出すことができます。 C プログラムでは、<tgmath.h> マクロを使用してこの関数を呼び出す場合を除き、fmax
では常に double を受け取って返します。
<tgmath.h>fmax()
マクロを使用する場合は、引数の型によって、この関数のどのバージョンが選択されるかが決定されます。 詳細については、「ジェネリック型数値演算」を参照してください。
要件
機能 | C ヘッダー | C++ ヘッダー |
---|---|---|
fmax 、 fmaxf 、 fmaxl |
<math.h> | <cmath> または <math.h> |
fmax マクロ |
<tgmath.h> |
互換性の詳細については、「 Compatibility」を参照してください。