MIN() Makro C-keeles

Min Makro C Keeles



C-i relatsioonitehteid kasutatakse laialdaselt ja neid võib leida peaaegu kõigist selles keeles kirjutatud programmidest. Selles keeles on mitu operaatorit – kõige sagedamini kasutatavad on võrdsed ( = ), suuremad kui ( > ) ja väiksemad kui ( < ). Seda tüüpi toimingut kasutatakse sageli kui-tingimustes. Näiteks on sisendtingimuseks teise muutuja või konstandi muutuja =, > või < väärtus.

Need suhteoperatsioonid on väga kasulikud. Kuid on juhtumeid, kus me peame teadma mitte ainult seda, kas üks muutuja on teisest suurem või väiksem, vaid ka selleks, et saada selle väärtus. Kuigi seda on lihtne teha 'if'-lausete ja lihtsate relatsioonioperatsioonidega, pakub C-keel makrodele ka funktsioone, mis tagastavad kahe muutuja vahelise maksimaalse või minimaalse väärtuse.

Sellest Linuxhinti artiklist saate teada, kuidas kasutada makrot MIN() kahe muutuja minimaalse väärtuse leidmiseks. Näitame teile süntaksit, helistamismeetodit ja andmetüüpi, mida see aktsepteerib. Seejärel vaatame selle toimimise kirjeldust ja vaatame üle selle makro avaldise ja valemi.







Seejärel rakendame praktilises näites õpitut, mis sisaldab koodilõike ja pilte, mis näitavad, kuidas leida miinimumi erinevate andmetüüpidega makro MIN() sisenditena.



MIN() makro süntaks C-keeles

MIN ( a , b )

MIN() makro kirjeldus C-keeles



Makro MIN() tagastab minimaalse väärtuse muutujate 'a' ja 'b' vahel. Makro MIN() kuvatav avaldis on tõene/väär tingimus, kus muutujate 'a' ja 'b' vahel rakendatakse relatsioonioperatsiooni '<'. Kui 'a' on väiksem kui 'b', tagastatakse 'a'. Kui 'b' on väiksem kui 'a', tagastatakse 'b'.





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

Makro MIN() töötab kõigi andmetüüpidega oma sisendites ja väljundites ainsa reegliga, et mõlemad sisendmuutujad peavad olema arvväärtused.

See makro on määratletud 'param.h' päises kaustas 'sys'. Selle kasutamiseks peame selle oma koodi sisestama järgmiselt:



#include

Kuidas leida miinimum kahe täisarvulise muutuja vahel makroga MIN()

Selles näites loome int tüüpi muutujad 'a' ja 'b', millele omistame suvalise väärtuse ja millest leiame makro MIN() kutsudes miinimumi. Seejärel väljastame tagastatud väärtuse funktsiooni printf() abil.

Selleks lisame päised “stdio.h” ja “param.h” ning avame void tüüpi funktsiooni main(). Selles määratleme 'a' ja 'b' täisarvud ning omistame neile juhusliku väärtuse. Samuti määratleme tulemuse salvestamiseks täisarvu 'c'.

Seejärel kutsume makro MIN() ja edastame sisendargumentidena 'a' ja 'b' ning väljundargumentidena 'c'. Tagastatud tulemuse kuvame funktsiooni printf() kutsumisega. Selle näite kood on järgmine:

#include

#include

tühine peamine ( ) {

int a = 32 ;

int b = 14 ;

int c ;

c = MIN ( a , b ) ;

printf ( ' \n Miinimum on %i \n ' , c ) ;

}

Järgmisena näeme pilti selle koodi koostamise ja täitmisega. Nagu näeme, tagastab makro MIN() sel juhul väärtuse “b”.

Sama juhtub, kui kasutame topelttüüpi muutujaid.

#include

#include

tühine peamine ( ) {

kahekordne a = 3 ;

kahekordne b = 1 ;

kahekordne c ;

c = MIN ( a , b ) ;

printf ( ' \n Kahekordsete a ja b miinimum on %f \n ' , c ) ;

}


Miinimum ja maksimum koos ujukoma muutujatega

Makro MIN() on kasulik funktsioon, kuid seda ei soovitata kasutada muutujate puhul, mis kasutavad ujukomaväärtusi. Seda tüüpi väärtuste miinimumi leidmiseks pakub matemaatikateek funktsioonide komplekti, mis on määratletud päises „math.h”. See komplekt koosneb funktsioonidest fmin(), fminf() ja fminl(). Vaatame iga funktsiooni jaoks järgmist süntaksit:

kahekordne fmin ( kahekordne x , kahekordne ja ) ;
ujuk fminf ( ujuk x , ujuk ja ) ;
pikk kahekordne fminl ( pikk kahekordne x , pikk kahekordne ja ) ;

Funktsioon fmin() töötab ujukomaga double (8 baiti) tüüpi andmetel. Funktsioon fminf() töötab float tüüpi andmetega (4 baiti), fminl() aga long double (16 baiti) tüüpi andmetega. Samuti töötlevad need funktsioonid mittenumbrilisi väärtusi (NaN).

Järeldus

Selles Linuxhinti artiklis selgitasime kõike, mida peate teadma makro MIN() kasutamiseks kahe muutuja vahelise minimaalse väärtuse leidmiseks. Vaatasime selle makro süntaksit ja määratlust ning valemit, mis rakendab kahe sisendmuutuja vahelise toimingu „vähem kui” (<) jaoks tõene/väär.

Seejärel rakendasime õpitud teooriat praktilises näites, kasutades koodilõike ja pilte, et näidata teile, kuidas töötada erinevat tüüpi andmetega. Samuti näitasime teile soovitatud võimalusi ujukomaarvude käsitlemiseks, kui MIN() ei ole soovitatav.