Macro MIN() em linguagem C

Macro Min Em Linguagem C



As operações relacionais em C são amplamente utilizadas e podem ser encontradas em quase todos os programas escritos nesta linguagem. Existem vários operadores nesta linguagem – os mais comumente usados ​​são igual a ( = ), maior que ( > ) e menor que ( < ). Este tipo de operação é frequentemente usado em condições if. Por exemplo, a condição de entrada é o valor da variável =, > ou < para outra variável ou constante.

Essas operações relacionais são muito úteis. Mas há casos em que precisamos saber não só se uma variável é maior ou menor que outra, mas também obter o seu valor. Embora isso seja feito facilmente com instruções “if” e operações relacionais simples, a linguagem C também fornece macros com funções que retornam o valor máximo ou mínimo entre duas variáveis.

Neste artigo do Linuxhint, você aprenderá como usar a macro MIN() para encontrar o valor mínimo de duas variáveis. Mostraremos a sintaxe, o método de chamada e o tipo de dados que ele aceita. A seguir, veremos uma descrição de como funciona e revisaremos a expressão e a fórmula que esta macro aplica.







Em seguida, aplicamos o que aprendemos em um exemplo prático que inclui trechos de código e imagens que mostram como encontrar o mínimo com diferentes tipos de dados como entradas para a macro MIN().



Sintaxe da macro MIN() em linguagem C

MÍNIMO ( a , b )

Descrição da macro MIN() em linguagem C



A macro MIN() retorna o valor mínimo entre as variáveis ​​“a” e “b”. A expressão exibida pela macro MIN() é uma condição verdadeiro/falso onde uma operação relacional “<” é aplicada entre as variáveis ​​“a” e “b”. Se “a” for menor que “b”, “a” será retornado. Se “b” for menor que “a”, “b” será retornado.





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

A macro MIN() funciona com todos os tipos de dados em suas entradas e saídas com a única regra de que ambas as variáveis ​​de entrada devem ser valores numéricos.

Esta macro é definida no cabeçalho “param.h” da pasta “sys”. Para utilizá-lo, precisamos inseri-lo em nosso código da seguinte forma:



#include

Como Encontrar o Mínimo entre Duas Variáveis ​​Inteiras com a Macro MIN()

Neste exemplo, criamos as variáveis ​​“a” e “b” do tipo int às quais atribuímos um valor arbitrário e a partir das quais encontramos o mínimo chamando a macro MIN(). Em seguida, geramos o valor retornado usando a função printf().

Para fazer isso, incluímos os cabeçalhos “stdio.h” e “param.h” e abrimos uma função main() do tipo void. Nele, definimos os inteiros “a” e “b” e atribuímos a eles um valor aleatório. Também definimos o inteiro “c” para armazenar o resultado.

Em seguida, chamamos a macro MIN() e passamos “a” e “b” como argumentos de entrada e “c” como argumentos de saída. Exibimos o resultado retornado chamando a função printf(). A seguir está o código para este exemplo:

#include

#include

vazio principal ( ) {

interno a = 32 ;

interno b = 14 ;

interno c ;

c = MÍNIMO ( a , b ) ;

imprimir ( ' \n O mínimo é %i \n ' , c ) ;

}

A seguir, vemos uma imagem com a compilação e execução deste código. Como podemos ver, a macro MIN() retorna o valor de “b” neste caso.

O mesmo acontece se utilizarmos variáveis ​​do tipo double.

#include

#include

vazio principal ( ) {

dobro a = 3 ;

dobro b = 1 ;

dobro c ;

c = MÍNIMO ( a , b ) ;

imprimir ( ' \n O mínimo de duplos a e b é %f \n ' , c ) ;

}


Mínimo e Máximo com Variáveis ​​de Ponto Flutuante

A macro MIN() é uma função útil, mas seu uso não é recomendado para variáveis ​​que utilizam valores de ponto flutuante. Para encontrar o mínimo deste tipo de valores, a biblioteca matemática fornece um conjunto de funções que é definido no cabeçalho “math.h”. Este conjunto consiste nas funções fmin(), fminf() e fminl(). Vejamos a seguinte sintaxe para cada uma dessas funções:

dobro fmin ( dobro x , dobro e ) ;
flutuador fminf ( flutuador x , flutuador e ) ;
longo dobro fminl ( longo dobro x , longo dobro e ) ;

A função fmin() opera sobre dados do tipo double (8 bytes) com ponto flutuante. A função fminf() trabalha com dados do tipo float (4 bytes), enquanto fminl() trabalha com dados do tipo long double (16 bytes). Além disso, essas funções processam valores não numéricos (NaN).

Conclusão

Neste artigo do Linuxhint, explicamos tudo que você precisa saber para usar a macro MIN() para encontrar o valor mínimo entre duas variáveis. Vimos a sintaxe e a definição desta macro, bem como a fórmula que aplica uma condição verdadeiro/falso para uma operação “menor que” (<) entre as duas variáveis ​​de entrada.

Em seguida, aplicamos a teoria que aprendemos a um exemplo prático usando trechos de código e imagens para mostrar como trabalhar com diferentes tipos de dados. Também mostramos as opções recomendadas para lidar com números de ponto flutuante onde o uso de MIN() não é recomendado.