MIN() Macro în limbajul C

Min Macro In Limbajul C



Operațiile relaționale în C sunt utilizate pe scară largă și pot fi găsite în aproape toate programele care sunt scrise în acest limbaj. Există mai mulți operatori în acest limbaj – cei mai des utilizați sunt egali cu ( = ), mai mari decât ( > ) și mai mici decât ( < ). Acest tip de operație este adesea folosit în condiții if. De exemplu, condiția de intrare este valoarea variabilei =, > sau < la o altă variabilă sau constantă.

Aceste operații relaționale sunt foarte utile. Dar există cazuri în care trebuie să știm nu numai dacă o variabilă este mai mare sau mai mică decât alta, ci și să obținem valoarea acesteia. Deși acest lucru se face cu ușurință cu instrucțiuni „if” și operații relaționale simple, limbajul C oferă și macrocomenzi cu funcții care returnează valoarea maximă sau minimă între două variabile.

În acest articol Linuxhint, veți învăța cum să utilizați macrocomanda MIN() pentru a găsi valoarea minimă a două variabile. Vă vom arăta sintaxa, metoda de apelare și tipul de date pe care îl acceptă. Apoi, vom analiza o descriere a modului în care funcționează și vom revizui expresia și formula pe care le aplică această macrocomandă.







Apoi aplicăm ceea ce am învățat într-un exemplu practic care include fragmente de cod și imagini care arată cum să găsim minimul cu diferite tipuri de date ca intrări în macro-ul MIN().



Sintaxa macrocomenzii MIN() în limbajul C

MIN ( A , b )

Descrierea macrocomenzii MIN() în limbajul C



Macro-ul MIN() returnează valoarea minimă dintre variabilele „a” și „b”. Expresia care este afișată de macro-ul MIN() este o condiție adevărat/fals în care se aplică o operație relațională „<” între variabilele „a” și „b”. Dacă „a” este mai mic decât „b”, „a” este returnat. Dacă „b” este mai mic decât „a”, „b” este returnat.





#definiți MIN(a,b) (((a)<(b))?(a):(b))

Macro-ul MIN() funcționează cu toate tipurile de date din intrările și ieșirile sale, cu singura regulă că ambele variabile de intrare trebuie să fie valori numerice.

Această macrocomandă este definită în antetul „param.h” din folderul „sys”. Pentru a-l folosi, trebuie să îl introducem în codul nostru după cum urmează:



#include

Cum să găsiți minimul dintre două variabile întregi cu macro-ul MIN()

În acest exemplu, creăm variabilele „a” și „b” de tip int cărora le atribuim o valoare arbitrară și din care găsim minimul apelând macro-ului MIN(). Apoi scoatem valoarea returnată folosind funcția printf().

Pentru a face acest lucru, includem anteturile „stdio.h” și „param.h” și deschidem o funcție main() de tip void. În acesta, definim numerele întregi „a” și „b” și le atribuim o valoare aleatorie. De asemenea, definim întregul „c” pentru a stoca rezultatul.

Apoi, numim macro-ul MIN() și trecem „a” și „b” ca argumente de intrare și „c” ca argumente de ieșire. Afișăm rezultatul returnat apelând funcția printf(). Următorul este codul pentru acest exemplu:

#include

#include

gol principal ( ) {

int A = 32 ;

int b = 14 ;

int c ;

c = MIN ( A , b ) ;

printf ( ' \n Minimul este %i \n ' , c ) ;

}

În continuare, vedem o imagine cu compilarea și execuția acestui cod. După cum putem vedea, macro-ul MIN() returnează valoarea „b” în acest caz.

La fel se întâmplă dacă folosim variabilele de tip dublu.

#include

#include

gol principal ( ) {

dubla A = 3 ;

dubla b = 1 ;

dubla c ;

c = MIN ( A , b ) ;

printf ( ' \n Minimul dublelor a și b este %f \n ' , c ) ;

}


Minim și maxim cu variabile în virgulă mobilă

Macro-ul MIN() este o funcție utilă, dar utilizarea sa nu este recomandată pentru variabilele care utilizează valori în virgulă mobilă. Pentru a găsi minimul acestui tip de valori, biblioteca de matematică oferă un set de funcții care este definit în antetul „math.h”. Acest set este format din funcțiile fmin(), fminf() și fminl(). Să ne uităm la următoarea sintaxă pentru fiecare dintre aceste funcții:

dubla fmin ( dubla X , dubla și ) ;
pluti fminf ( pluti X , pluti și ) ;
lung dubla fminl ( lung dubla X , lung dubla și ) ;

Funcția fmin() operează pe datele de tip double (8 octeți) cu virgulă mobilă. Funcția fminf() funcționează cu datele de tip float (4 octeți), în timp ce fminl() funcționează cu datele de tip long double (16 octeți). De asemenea, aceste funcții procesează valorile nenumerice (NaN).

Concluzie

În acest articol Linuxhint, am explicat tot ce trebuie să știți pentru a utiliza macro-ul MIN() pentru a găsi valoarea minimă între două variabile. Ne-am uitat la sintaxa și definiția acestei macrocomenzi, precum și la formula care aplică o condiție adevărat/fals pentru o operație „mai mică decât” (<) între cele două variabile de intrare.

Apoi am aplicat teoria pe care am învățat-o la un exemplu practic folosind fragmentele de cod și imaginile pentru a vă arăta cum să lucrați cu diferite tipuri de date. De asemenea, v-am arătat opțiunile recomandate pentru a trata numerele în virgulă mobilă în care nu este recomandată utilizarea lui MIN().