MIN() Macro in C-taal

Min Macro In C Taal



Relationele bewerkingen in C worden veel gebruikt en zijn te vinden in vrijwel elk programma dat in deze taal is geschreven. Er zijn verschillende operatoren in deze taal. De meest gebruikte zijn gelijk aan ( = ), groter dan ( > ) en kleiner dan ( < ). Dit type bewerking wordt vaak gebruikt in if-omstandigheden. De invoervoorwaarde is bijvoorbeeld de waarde van de variabele =, > of < voor een andere variabele of constante.

Deze relationele bewerkingen zijn erg handig. Maar er zijn gevallen waarin we niet alleen moeten weten of de ene variabele groter of kleiner is dan de andere, maar ook om de waarde ervan te bepalen. Hoewel dit eenvoudig kan worden gedaan met “if”-instructies en eenvoudige relationele bewerkingen, biedt de C-taal ook macro's met functies die de maximale of minimale waarde tussen twee variabelen retourneren.

In dit Linuxhint-artikel leer je hoe je de macro MIN() gebruikt om de minimumwaarde van twee variabelen te vinden. We laten u de syntaxis, de aanroepmethode en het gegevenstype zien dat het accepteert. Vervolgens bekijken we een beschrijving van hoe het werkt en bekijken we de uitdrukking en formule waarop deze macro van toepassing is.







Vervolgens passen we toe wat we hebben geleerd in een praktisch voorbeeld dat de codefragmenten en afbeeldingen bevat die laten zien hoe je het minimum kunt vinden met verschillende gegevenstypen als invoer voor de macro MIN().



Syntaxis van de MIN()-macro in C-taal

MIN ( A , B )

Beschrijving van de MIN()-macro in C-taal



De macro MIN() retourneert de minimumwaarde tussen de variabelen “a” en “b”. De expressie die wordt weergegeven door de macro MIN() is een waar/onwaar-voorwaarde waarbij een relationele bewerking “<” wordt toegepast tussen de variabelen “a” en “b”. Als “a” kleiner is dan “b”, wordt “a” geretourneerd. Als “b” kleiner is dan “a”, wordt “b” geretourneerd.





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

De macro MIN() werkt met alle gegevenstypen in de invoer en uitvoer, met als enige regel dat beide invoervariabelen numerieke waarden moeten zijn.

Deze macro wordt gedefinieerd in de kop “param.h” in de map “sys”. Om het te gebruiken, moeten we het als volgt in onze code invoegen:



#include

Hoe u het minimum tussen twee gehele variabelen kunt vinden met de macro MIN()

In dit voorbeeld creëren we de variabelen “a” en “b” van het type int waaraan we een willekeurige waarde toekennen en waarvan we het minimum vinden door de macro MIN() aan te roepen. Vervolgens voeren we de geretourneerde waarde uit met behulp van de printf() functie.

Om dit te doen, nemen we de headers “stdio.h” en “param.h” op en openen we een main()-functie van het type void. Daarin definiëren we de gehele getallen “a” en “b” en wijzen ze een willekeurige waarde toe. We definiëren ook het gehele getal “c” om het resultaat op te slaan.

Vervolgens roepen we de macro MIN() aan en geven “a” en “b” door als invoerargumenten en “c” als uitvoerargumenten. We geven het geretourneerde resultaat weer door de functie printf() aan te roepen. Het volgende is de code voor dit voorbeeld:

#include

#include

leegte voornaamst ( ) {

int A = 32 ;

int B = 14 ;

int C ;

C = MIN ( A , B ) ;

afdrukkenf ( ' \N Het minimum is %i \N ' , C ) ;

}

Vervolgens zien we een afbeelding met de compilatie en uitvoering van deze code. Zoals we kunnen zien, retourneert de macro MIN() in dit geval de waarde van “b”.

Hetzelfde gebeurt als we variabelen van het dubbele type gebruiken.

#include

#include

leegte voornaamst ( ) {

dubbele A = 3 ;

dubbele B = 1 ;

dubbele C ;

C = MIN ( A , B ) ;

afdrukkenf ( ' \N Het minimum van de verdubbelingen a en b is %f \N ' , C ) ;

}


Minimum en maximum met drijvende-kommavariabelen

De macro MIN() is een nuttige functie, maar het gebruik ervan wordt niet aanbevolen voor variabelen die drijvende-kommawaarden gebruiken. Om het minimum van dit soort waarden te vinden, biedt de wiskundebibliotheek een reeks functies die zijn gedefinieerd in de header 'math.h'. Deze set bestaat uit de functies fmin(), fminf() en fminl(). Laten we eens kijken naar de volgende syntaxis voor elk van deze functies:

dubbele fmin ( dubbele X , dubbele En ) ;
vlot fminf ( vlot X , vlot En ) ;
lang dubbele fmin ( lang dubbele X , lang dubbele En ) ;

De functie fmin() werkt op gegevens van het type double (8 bytes) met drijvende komma. De functie fminf() werkt met de gegevens van het type float (4 bytes), terwijl fminl() werkt met de gegevens van het type long double (16 bytes). Deze functies verwerken ook de niet-numerieke waarden (NaN).

Conclusie

In dit Linuxhint-artikel hebben we alles uitgelegd wat je moet weten om de macro MIN() te gebruiken om de minimumwaarde tussen twee variabelen te vinden. We hebben gekeken naar de syntaxis en definitie van deze macro, evenals naar de formule die een waar/onwaar-voorwaarde toepast voor een 'kleiner dan'-bewerking (<) tussen de twee invoervariabelen.

Vervolgens hebben we de theorie die we hebben geleerd toegepast op een praktijkvoorbeeld met behulp van de codefragmenten en afbeeldingen om u te laten zien hoe u met verschillende soorten gegevens kunt werken. We hebben u ook de aanbevolen opties laten zien voor het omgaan met getallen met drijvende komma waarbij het gebruik van MIN() niet wordt aanbevolen.