C言語のMIN()マクロ

C Yan Yunomin Makuro



C のリレーショナル演算は広く使用されており、この言語で記述されたほぼすべてのプログラムで使用できます。この言語にはいくつかの演算子があります。最も一般的に使用されるのは、等しい ( = )、より大きい ( > )、より小さい ( < ) です。このタイプの操作は、if 条件でよく使用されます。たとえば、入力条件は、別の変数または定数に対する =、>、または < 変数の値です。

これらの関係演算は非常に便利です。しかし、ある変数が別の変数より大きいか小さいかを知るだけでなく、その値を取得する必要がある場合もあります。これは「if」ステートメントと単純な関係演算で簡単に実行できますが、C 言語には 2 つの変数間の最大値または最小値を返す関数を備えたマクロも用意されています。

この Linuxhint の記事では、マクロ MIN() を使用して 2 つの変数の最小値を見つける方法を学びます。構文、呼び出しメソッド、および受け入れられるデータ型を示します。次に、マクロがどのように機能するかについて説明し、このマクロが適用する式と数式を確認します。







次に、マクロ MIN() への入力としてさまざまなデータ型で最小値を見つける方法を示すコード スニペットと画像を含む実践的な例で学んだことを適用します。



C 言語の MIN() マクロの構文

最小 ( ある b )

C 言語での MIN() マクロの説明



マクロ MIN() は、「a」変数と「b」変数の間の最小値を返します。マクロ MIN() によって表示される式は、変数「a」と変数「b」の間に関係演算「<」が適用される true/false 条件です。 「a」が「b」より小さい場合、「a」が返されます。 「b」が「a」より小さい場合は「b」を返します。





#define MIN(a,b) (((a)<(b))?(a):(b))

マクロ MIN() は、両方の入力変数が数値である必要があるという唯一のルールに従って、入力および出力のすべてのデータ型を処理します。

このマクロは、「sys」フォルダー内の「param.h」ヘッダーで定義されています。これを使用するには、次のようにコードに挿入する必要があります。



#include

マクロ MIN() を使用して 2 つの整変数間の最小値を見つける方法

この例では、int 型の変数「a」と「b」を作成し、これに任意の値を割り当て、マクロ MIN() を呼び出してそこから最小値を見つけます。次に、printf() 関数を使用して戻り値を出力します。

これを行うには、「stdio.h」ヘッダーと「param.h」ヘッダーをインクルードし、void 型の main() 関数を開きます。その中で、「a」と「b」の整数を定義し、それらにランダムな値を割り当てます。また、結果を保存するための「c」整数も定義します。

次に、マクロ MIN() を呼び出し、入力引数として「a」と「b」を、出力引数として「c」を渡します。 printf() 関数を呼び出して、返された結果を表示します。この例のコードは次のとおりです。

#include

#include

空所 主要 ( ) {

整数 ある = 32 ;

整数 b = 14 ;

整数 c ;

c = 最小 ( ある b ) ;

プリントフ ( \n 最小値は %i です \n c ) ;

}

次に、このコードのコンパイルと実行のイメージを示します。見てわかるように、この場合、マクロ MIN() は「b」の値を返します。

double 型の変数を使用した場合も同じことが起こります。

#include

#include

空所 主要 ( ) {

ダブル ある = 3 ;

ダブル b = 1 ;

ダブル c ;

c = 最小 ( ある b ) ;

プリントフ ( \n double a と b の最小値は %f です \n c ) ;

}


浮動小数点変数の最小値と最大値

マクロ MIN() は便利な関数ですが、浮動小数点値を使用する変数での使用はお勧めできません。この種の値の最小値を見つけるために、数学ライブラリには「math.h」ヘッダーで定義された一連の関数が用意されています。このセットは、fmin()、fminf()、および fminl() 関数で構成されます。これらの各関数の次の構文を見てみましょう。

ダブル ふみん ( ダブル バツ ダブル そして ) ;
浮く ふみふ ( 浮く バツ 浮く そして ) ;
長さ ダブル fminl ( 長さ ダブル バツ 長さ ダブル そして ) ;

fmin() 関数は、浮動小数点を使用して double (8 バイト) 型のデータを操作します。 fminf() 関数は float 型 (4 バイト) のデータを処理し、fminl() は long double (16 バイト) 型のデータを処理します。また、これらの関数は数値以外の値 (NaN) を処理します。

結論

この Linuxhint の記事では、マクロ MIN() を使用して 2 つの変数間の最小値を見つけるために知っておくべきことをすべて説明しました。このマクロの構文と定義、および 2 つの入力変数間の「未満」演算 (<) に true/false 条件を適用する式を調べました。

次に、学んだ理論をコード スニペットと画像を使用した実際の例に適用し、さまざまな種類のデータを操作する方法を示しました。また、MIN() の使用が推奨されない浮動小数点数を処理するための推奨オプションも示しました。