__min
2 つの値の小さい方を返すプリプロセッサ マクロです。
構文
#define __min(a,b) (((a) < (b)) ? (a) : (b))
パラメーター
a
, b
< 演算子が機能する任意の型の値。
戻り値
2 つの引数のうちの小さい方。
解説
__min
マクロでは、2 つの値を比較して小さい方の値を返します。 引数には、符号付きまたは符号なしのすべての数値データ型を指定できます。 引数と戻り値はともに同じデータ型である必要があります。
返される引数はこのマクロによって 2 回評価されます。 引数が評価時に値を変更する式 ( *p++
など) である場合、二重評価によって予期しない結果が発生する可能性があります。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
__min |
<stdlib.h> |
例
// crt_minmax.c
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int a = 10;
int b = 21;
printf( "The larger of %d and %d is %d\n", a, b, __max( a, b ) );
printf( "The smaller of %d and %d is %d\n", a, b, __min( a, b ) );
}
The larger of 10 and 21 is 21
The smaller of 10 and 21 is 10