Makro MIN() u jeziku C

Makro Min U Jeziku C



Relacijske operacije u C-u naširoko se koriste i mogu se naći u gotovo svakom programu koji je napisan na ovom jeziku. U ovom jeziku postoji nekoliko operatora – najčešće korišteni su jednako ( = ), veće od ( > ) i manje od ( < ). Ova vrsta operacije se često koristi u if-uvjetima. Na primjer, ulazni uvjet je vrijednost varijable =, > ili < drugoj varijabli ili konstanti.

Ove relacijske operacije su vrlo korisne. Ali postoje slučajevi u kojima moramo znati ne samo je li jedna varijabla veća ili manja od druge, već i dobiti njezinu vrijednost. Iako se to lako može učiniti s 'if' izjavama i jednostavnim relacijskim operacijama, jezik C također nudi makronaredbe s funkcijama koje vraćaju maksimalnu ili minimalnu vrijednost između dvije varijable.

U ovom članku o Linuxhintu naučit ćete kako koristiti makro MIN() za pronalaženje minimalne vrijednosti dviju varijabli. Pokazat ćemo vam sintaksu, metodu pozivanja i vrstu podataka koju prihvaća. Zatim ćemo pogledati opis kako funkcionira i pregledati izraz i formulu koje ova makronaredba primjenjuje.







Zatim primjenjujemo ono što smo naučili u praktičnom primjeru koji uključuje isječke koda i slike koje pokazuju kako pronaći minimum s različitim tipovima podataka kao ulaze u makro MIN().



Sintaksa makronaredbe MIN() u jeziku C

MIN ( a , b )

Opis makronaredbe MIN() u jeziku C



Makro MIN() vraća minimalnu vrijednost između varijabli 'a' i 'b'. Izraz koji prikazuje makronaredba MIN() uvjet je true/false gdje se između varijabli 'a' i 'b' primjenjuje relacijska operacija '<'. Ako je 'a' manje od 'b', vraća se 'a'. Ako je 'b' manje od 'a', vraća se 'b'.





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

Makro MIN() radi sa svim tipovima podataka u svojim ulazima i izlazima uz jedino pravilo da obje ulazne varijable moraju biti numeričke vrijednosti.

Ova makronaredba definirana je u zaglavlju 'param.h' u mapi 'sys'. Da bismo ga koristili, moramo ga umetnuti u naš kod na sljedeći način:



#include

Kako pronaći minimum između dvije cjelobrojne varijable pomoću makronaredbe MIN()

U ovom primjeru stvaramo varijable 'a' i 'b' tipa int kojima dodjeljujemo proizvoljnu vrijednost i iz koje pronalazimo minimum pozivom makronaredbe MIN(). Zatim ispisujemo vraćenu vrijednost pomoću funkcije printf().

Da bismo to učinili, uključujemo zaglavlja 'stdio.h' i 'param.h' i otvaramo funkciju main() tipa void. U njemu definiramo cijele brojeve 'a' i 'b' i pridružujemo im slučajnu vrijednost. Također definiramo cijeli broj “c” za pohranjivanje rezultata.

Zatim pozivamo makronaredbu MIN() i prosljeđujemo 'a' i 'b' kao ulazne argumente i 'c' kao izlazne argumente. Vraćeni rezultat prikazujemo pozivom funkcije printf(). Slijedi kôd za ovaj primjer:

#include

#include

poništiti glavni ( ) {

int a = 32 ;

int b = 14 ;

int c ;

c = MIN ( a , b ) ;

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

}

Zatim vidimo sliku s kompilacijom i izvođenjem ovog koda. Kao što vidimo, makronaredba MIN() u ovom slučaju vraća vrijednost 'b'.

Isto se događa ako koristimo varijable tipa double.

#include

#include

poništiti glavni ( ) {

dvostruko a = 3 ;

dvostruko b = 1 ;

dvostruko c ;

c = MIN ( a , b ) ;

printf ( ' \n Minimum dvostrukih a i b je %f \n ' , c ) ;

}


Minimum i maksimum s varijablama s pomičnim zarezom

Makro MIN() je korisna funkcija, ali se ne preporučuje njezina upotreba za varijable koje koriste vrijednosti s pomičnim zarezom. Za pronalaženje minimalne vrijednosti ove vrste, matematička biblioteka pruža skup funkcija koje su definirane u zaglavlju 'math.h'. Ovaj skup sastoji se od funkcija fmin(), fminf() i fminl(). Pogledajmo sljedeću sintaksu za svaku od ovih funkcija:

dvostruko fmin ( dvostruko x , dvostruko i ) ;
plutati fminf ( plutati x , plutati i ) ;
dugo dvostruko fminl ( dugo dvostruko x , dugo dvostruko i ) ;

Funkcija fmin() radi s podacima tipa double (8 bajtova) s pomičnim zarezom. Funkcija fminf() radi s podacima tipa float (4 bajta), dok fminl() radi s podacima tipa long double (16 bajtova). Također, ove funkcije obrađuju nenumeričke vrijednosti (NaN).

Zaključak

U ovom članku o Linuxhintu objasnili smo sve što trebate znati za korištenje makronaredbe MIN() za pronalaženje minimalne vrijednosti između dvije varijable. Pogledali smo sintaksu i definiciju ove makronaredbe, kao i formulu koja primjenjuje uvjet true/false za operaciju 'manje od' (<) između dvije ulazne varijable.

Zatim smo teoriju koju smo naučili primijenili na praktični primjer pomoću isječaka koda i slika kako bismo vam pokazali kako raditi s različitim vrstama podataka. Također smo vam pokazali preporučene opcije za rad s brojevima s pomičnim zarezom gdje se ne preporučuje korištenje MIN().