MIN() Makro v jazyku C

Min Makro V Jazyku C



Relačné operácie v C sú široko používané a možno ich nájsť takmer v každom programe, ktorý je napísaný v tomto jazyku. V tomto jazyku existuje niekoľko operátorov – najčastejšie používané sú rovné ( = ), väčšie ako ( > ) a menšie ako ( < ). Tento typ operácie sa často používa v podmienkach if. Napríklad vstupná podmienka je hodnota premennej =, > alebo < inej premennej alebo konštanty.

Tieto relačné operácie sú veľmi užitočné. Sú však prípady, keď potrebujeme vedieť nielen to, či je jedna premenná väčšia alebo menšia ako druhá, ale aj získať jej hodnotu. Hoci sa to dá ľahko vykonať pomocou príkazov „if“ a jednoduchých relačných operácií, jazyk C poskytuje aj makrá s funkciami, ktoré vracajú maximálnu alebo minimálnu hodnotu medzi dvoma premennými.

V tomto článku Linuxhint sa dozviete, ako použiť makro MIN() na nájdenie minimálnej hodnoty dvoch premenných. Ukážeme vám syntax, metódu volania a typ údajov, ktorý akceptuje. Potom sa pozrieme na popis, ako to funguje, a skontrolujeme výraz a vzorec, ktorý toto makro používa.







To, čo sme sa naučili, potom aplikujeme v praktickom príklade, ktorý obsahuje úryvky kódu a obrázky, ktoré ukazujú, ako nájsť minimum s rôznymi typmi údajov ako vstupy do makra MIN().



Syntax makra MIN() v jazyku C

MIN ( a , b )

Popis makra MIN() v jazyku C



Makro MIN() vráti minimálnu hodnotu medzi premennými „a“ a „b“. Výraz, ktorý je zobrazený makrom MIN() je stav pravda/nepravda, keď sa medzi premennými „a“ a „b“ použije relačná operácia „<“. Ak je „a“ menšie ako „b“, vráti sa „a“. Ak je „b“ menšie ako „a“, vráti sa „b“.





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

Makro MIN() pracuje so všetkými dátovými typmi vo svojich vstupoch a výstupoch s jediným pravidlom, že obe vstupné premenné musia byť číselné hodnoty.

Toto makro je definované v hlavičke „param.h“ v priečinku „sys“. Aby sme ho mohli použiť, musíme ho vložiť do nášho kódu takto:



#include

Ako nájsť minimum medzi dvoma celočíselnými premennými pomocou makra MIN()

V tomto príklade vytvoríme premenné „a“ a „b“ typu int, ktorým priradíme ľubovoľnú hodnotu a z ktorých nájdeme minimum volaním makra MIN(). Vrátenú hodnotu potom vypíšeme pomocou funkcie printf().

Za týmto účelom zahrnieme hlavičky „stdio.h“ a „param.h“ a otvoríme funkciu main() typu void. V ňom definujeme celé čísla „a“ a „b“ a priradíme im náhodnú hodnotu. Definujeme tiež celé číslo „c“ na uloženie výsledku.

Potom zavoláme makro MIN() a odovzdáme „a“ a „b“ ako vstupné argumenty a „c“ ako výstupné argumenty. Vrátený výsledok zobrazíme volaním funkcie printf(). Nasleduje kód pre tento príklad:

#include

#include

neplatné Hlavná ( ) {

int a = 32 ;

int b = 14 ;

int c ;

c = MIN ( a , b ) ;

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

}

Ďalej vidíme obrázok s kompiláciou a vykonaním tohto kódu. Ako vidíme, makro MIN() v tomto prípade vracia hodnotu „b“.

To isté sa stane, ak použijeme premenné typu double.

#include

#include

neplatné Hlavná ( ) {

dvojitý a = 3 ;

dvojitý b = 1 ;

dvojitý c ;

c = MIN ( a , b ) ;

printf ( ' \n Minimum dvojíc a a b je %f \n ' , c ) ;

}


Minimum a maximum s premennými s pohyblivou rádovou čiarkou

Makro MIN() je užitočná funkcia, ale jeho použitie sa neodporúča pre premenné, ktoré používajú hodnoty s pohyblivou rádovou čiarkou. Na nájdenie minima tohto druhu hodnôt poskytuje matematická knižnica sadu funkcií, ktoré sú definované v hlavičke „math.h“. Táto sada pozostáva z funkcií fmin(), fminf() a fminl(). Pozrime sa na nasledujúcu syntax pre každú z týchto funkcií:

dvojitý fmin ( dvojitý X , dvojitý a ) ;
plavák fminf ( plavák X , plavák a ) ;
dlhý dvojitý fminl ( dlhý dvojitý X , dlhý dvojitý a ) ;

Funkcia fmin() pracuje s údajmi typu double (8 bajtov) s pohyblivou rádovou čiarkou. Funkcia fminf() pracuje s údajmi typu float (4 bajty), kým fminl() pracuje s údajmi typu long double (16 bajtov). Tieto funkcie spracovávajú aj nečíselné hodnoty (NaN).

Záver

V tomto článku Linuxhint sme vysvetlili všetko, čo potrebujete vedieť, aby ste mohli pomocou makra MIN() nájsť minimálnu hodnotu medzi dvoma premennými. Pozreli sme sa na syntax a definíciu tohto makra, ako aj na vzorec, ktorý uplatňuje podmienku pravda/nepravda pre operáciu „menej ako“ (<) medzi dvoma vstupnými premennými.

Potom sme teóriu, ktorú sme sa naučili, aplikovali na praktický príklad s použitím útržkov kódu a obrázkov, aby sme vám ukázali, ako pracovať s rôznymi typmi údajov. Ukázali sme vám aj odporúčané možnosti, ako sa vysporiadať s číslami s pohyblivou rádovou čiarkou, kde sa neodporúča používať MIN().