MIN() Makro v jazyce C

Min Makro V Jazyce C



Relační operace v C jsou široce používané a lze je nalézt téměř v každém programu, který je napsán v tomto jazyce. V tomto jazyce existuje několik operátorů – nejčastěji používané jsou rovné ( = ), větší než ( > ) a menší než ( < ). Tento typ operace se často používá v podmínkách if. Například vstupní podmínkou je hodnota proměnné =, > nebo < jiné proměnné nebo konstanty.

Tyto relační operace jsou velmi užitečné. Jsou ale případy, kdy potřebujeme nejen vědět, zda je jedna proměnná větší nebo menší než druhá, ale také získat její hodnotu. Ačkoli to lze snadno provést pomocí příkazů „if“ a jednoduchých relačních operací, jazyk C také poskytuje makra s funkcemi, které vracejí maximální nebo minimální hodnotu mezi dvěma proměnnými.

V tomto článku Linuxhint se dozvíte, jak použít makro MIN() k nalezení minimální hodnoty dvou proměnných. Ukážeme vám syntaxi, metodu volání a datový typ, který přijímá. Poté se podíváme na popis, jak to funguje, a zkontrolujeme výraz a vzorec, které toto makro používá.







To, co jsme se naučili, pak aplikujeme v praktickém příkladu, který zahrnuje úryvky kódu a obrázky, které ukazují, jak najít minimum s různými datovými typy jako vstupy do makra MIN().



Syntaxe makra MIN() v jazyce C

MIN ( A , b )

Popis makra MIN() v jazyce C



Makro MIN() vrací minimální hodnotu mezi proměnnými „a“ a „b“. Výraz, který je zobrazen makrem MIN() je podmínka pravdivá/nepravda, kde je mezi proměnnými 'a' a 'b' aplikována relační operace '<'. Pokud je „a“ menší než „b“, vrátí se „a“. Pokud je „b“ menší než „a“, vrátí se „b“.





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

Makro MIN() pracuje se všemi datovými typy ve svých vstupech a výstupech s jediným pravidlem, že obě vstupní proměnné musí být číselné hodnoty.

Toto makro je definováno v záhlaví „param.h“ ve složce „sys“. Abychom jej mohli používat, musíme jej vložit do našeho kódu následovně:



#include

Jak najít minimum mezi dvěma celočíselnými proměnnými pomocí makra MIN()

V tomto příkladu vytvoříme proměnné „a“ a „b“ typu int, kterým přiřadíme libovolnou hodnotu a ze kterých najdeme minimum voláním makra MIN(). Vrácenou hodnotu pak vypíšeme pomocí funkce printf().

K tomu zahrneme hlavičky „stdio.h“ a „param.h“ a otevřeme funkci main() typu void. V něm definujeme „a“ a „b“ celá čísla a přiřadíme jim náhodnou hodnotu. Definujeme také celé číslo „c“ pro uložení výsledku.

Potom zavoláme makro MIN() a předáme „a“ a „b“ jako vstupní argumenty a „c“ jako výstupní argumenty. Vrácený výsledek zobrazíme voláním funkce printf(). Níže je uveden kód pro tento příklad:

#include

#include

prázdnota hlavní ( ) {

int A = 32 ;

int b = 14 ;

int C ;

C = MIN ( A , b ) ;

printf ( ' \n Minimum je %i \n ' , C ) ;

}

Dále vidíme obrázek s kompilací a provedením tohoto kódu. Jak vidíme, makro MIN() v tomto případě vrací hodnotu „b“.

Totéž se stane, pokud použijeme proměnné typu double.

#include

#include

prázdnota hlavní ( ) {

dvojnásobek A = 3 ;

dvojnásobek b = 1 ;

dvojnásobek C ;

C = MIN ( A , b ) ;

printf ( ' \n Minimum dvojnásobků aab je %f \n ' , C ) ;

}


Minimum a maximum s proměnnými s pohyblivou řádovou čárkou

Makro MIN() je užitečná funkce, ale jeho použití se nedoporučuje pro proměnné, které používají hodnoty s plovoucí desetinnou čárkou. Pro nalezení minima tohoto druhu hodnot poskytuje matematická knihovna sadu funkcí, které jsou definovány v záhlaví „math.h“. Tato sada se skládá z funkcí fmin(), fminf() a fminl(). Podívejme se na následující syntaxi pro každou z těchto funkcí:

dvojnásobek fmin ( dvojnásobek X , dvojnásobek a ) ;
plovák fminf ( plovák X , plovák a ) ;
dlouho dvojnásobek fminl ( dlouho dvojnásobek X , dlouho dvojnásobek a ) ;

Funkce fmin() pracuje s daty typu double (8 bajtů) s pohyblivou řádovou čárkou. Funkce fminf() pracuje s daty typu float (4 bajty), zatímco fminl() pracuje s daty typu long double (16 bajtů). Tyto funkce také zpracovávají nečíselné hodnoty (NaN).

Závěr

V tomto článku o Linuxhintu jsme vysvětlili vše, co potřebujete vědět, abyste mohli pomocí makra MIN() najít minimální hodnotu mezi dvěma proměnnými. Podívali jsme se na syntaxi a definici tohoto makra a také na vzorec, který aplikuje podmínku true/false pro operaci „menší než“ (<) mezi dvěma vstupními proměnnými.

Teorii, kterou jsme se naučili, jsme pak aplikovali na praktický příklad pomocí úryvků kódu a obrázků, abychom vám ukázali, jak pracovat s různými typy dat. Také jsme vám ukázali doporučené možnosti pro práci s čísly s pohyblivou řádovou čárkou, kde se použití MIN() nedoporučuje.