MIN() Macro in linguaggio C

Min Macro In Linguaggio C



Le operazioni relazionali in C sono ampiamente utilizzate e possono essere trovate in quasi tutti i programmi scritti in questo linguaggio. Esistono diversi operatori in questo linguaggio: i più comunemente usati sono uguale a ( = ), maggiore di ( > ) e minore di ( < ). Questo tipo di operazione viene spesso utilizzato nelle condizioni if. Ad esempio, la condizione di input è il valore della variabile =, > o < in un'altra variabile o costante.

Queste operazioni relazionali sono molto utili. Ma ci sono casi in cui dobbiamo sapere non solo se una variabile è più grande o più piccola di un'altra, ma anche ottenerne il valore. Anche se ciò può essere fatto facilmente con istruzioni “if” e semplici operazioni relazionali, il linguaggio C fornisce anche macro con funzioni che restituiscono il valore massimo o minimo tra due variabili.

In questo articolo di Linuxhint imparerai come usare la macro MIN() per trovare il valore minimo di due variabili. Ti mostreremo la sintassi, il metodo di chiamata e il tipo di dati che accetta. Successivamente, esamineremo una descrizione di come funziona e rivedremo l'espressione e la formula applicata da questa macro.







Applichiamo quindi ciò che abbiamo imparato in un esempio pratico che include frammenti di codice e immagini che mostrano come trovare il minimo con diversi tipi di dati come input nella macro MIN().



Sintassi della macro MIN() in linguaggio C

MINIMO ( UN , B )

Descrizione della macro MIN() in linguaggio C



La macro MIN() restituisce il valore minimo tra le variabili “a” e “b”. L'espressione visualizzata dalla macro MIN() è una condizione vero/falso in cui viene applicata un'operazione relazionale “<” tra le variabili “a” e “b”. Se 'a' è inferiore a 'b', viene restituito 'a'. Se 'b' è inferiore ad 'a', viene restituito 'b'.





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

La macro MIN() funziona con tutti i tipi di dati nei suoi input e output con l'unica regola che entrambe le variabili di input devono essere valori numerici.

Questa macro è definita nell'intestazione 'param.h' nella cartella 'sys'. Per usarlo, dobbiamo inserirlo nel nostro codice come segue:



#include

Come trovare il minimo tra due variabili intere con la macro MIN()

In questo esempio creiamo le variabili “a” e “b” di tipo int alle quali assegniamo un valore arbitrario e dalle quali troviamo il minimo richiamando la macro MIN(). Quindi restituiamo il valore restituito utilizzando la funzione printf().

Per fare ciò, includiamo gli header “stdio.h” e “param.h” e apriamo una funzione main() di tipo void. In esso definiamo i numeri interi “a” e “b” e assegniamo loro un valore casuale. Definiamo anche il numero intero 'c' per memorizzare il risultato.

Quindi chiamiamo la macro MIN() e passiamo “a” e “b” come argomenti di input e “c” come argomenti di output. Visualizziamo il risultato restituito chiamando la funzione printf(). Quello che segue è il codice per questo esempio:

#include

#include

vuoto principale ( ) {

int UN = 32 ;

int B = 14 ;

int C ;

C = MINIMO ( UN , B ) ;

printf ( ' \N Il minimo è %i \N ' , C ) ;

}

Successivamente, vediamo un'immagine con la compilazione e l'esecuzione di questo codice. Come possiamo vedere, la macro MIN() restituisce in questo caso il valore di “b”.

Lo stesso accade se utilizziamo le variabili di tipo double.

#include

#include

vuoto principale ( ) {

Doppio UN = 3 ;

Doppio B = 1 ;

Doppio C ;

C = MINIMO ( UN , B ) ;

printf ( ' \N Il minimo dei doppi aeb è %f \N ' , C ) ;

}


Minimo e massimo con variabili in virgola mobile

La macro MIN() è una funzione utile, ma il suo utilizzo non è consigliato per le variabili che utilizzano valori in virgola mobile. Per trovare il minimo di questo tipo di valori, la libreria matematica fornisce una serie di funzioni definite nell'intestazione 'math.h'. Questo set è costituito dalle funzioni fmin(), fminf() e fminl(). Diamo un'occhiata alla seguente sintassi per ciascuna di queste funzioni:

Doppio fmin ( Doppio X , Doppio E ) ;
galleggiante fminf ( galleggiante X , galleggiante E ) ;
lungo Doppio fminl ( lungo Doppio X , lungo Doppio E ) ;

La funzione fmin() opera sui dati di tipo double (8 byte) con virgola mobile. La funzione fminf() funziona con i dati di tipo float (4 byte), mentre fminl() funziona con i dati di tipo long double (16 byte). Inoltre, queste funzioni elaborano i valori non numerici (NaN).

Conclusione

In questo articolo di Linuxhint, abbiamo spiegato tutto ciò che devi sapere per usare la macro MIN() per trovare il valore minimo tra due variabili. Abbiamo esaminato la sintassi e la definizione di questa macro, nonché la formula che applica una condizione vero/falso per un'operazione 'minore di' (<) tra le due variabili di input.

Abbiamo quindi applicato la teoria appresa a un esempio pratico utilizzando frammenti di codice e immagini per mostrarti come lavorare con diversi tipi di dati. Ti abbiamo anche mostrato le opzioni consigliate per gestire i numeri in virgola mobile dove l'uso di MIN() non è raccomandato.