Macro MIN() en lenguaje C

Macro Min En Lenguaje C



Las operaciones relacionales en C se utilizan ampliamente y se pueden encontrar en casi todos los programas escritos en este lenguaje. Hay varios operadores en este lenguaje; los más utilizados son igual a (=), mayor que (>) y menor que (<). Este tipo de operación se utiliza a menudo en condiciones if. Por ejemplo, la condición de entrada es el valor de la variable =, > o < a otra variable o constante.

Estas operaciones relacionales son muy útiles. Pero hay casos en los que necesitamos saber no sólo si una variable es mayor o menor que otra, sino también obtener su valor. Aunque esto se hace fácilmente con declaraciones 'si' y operaciones relacionales simples, el lenguaje C también proporciona macros con funciones que devuelven el valor máximo o mínimo entre dos variables.

En este artículo de Linuxhint, aprenderá cómo usar la macro MIN() para encontrar el valor mínimo de dos variables. Le mostraremos la sintaxis, el método de llamada y el tipo de datos que acepta. Luego, veremos una descripción de cómo funciona y revisaremos la expresión y fórmula que aplica esta macro.







Luego aplicamos lo que aprendimos en un ejemplo práctico que incluye fragmentos de código e imágenes que muestran cómo encontrar el mínimo con diferentes tipos de datos como entradas a la macro MIN().



Sintaxis de la macro MIN() en lenguaje C

MÍNIMO ( a , b )

Descripción de la Macro MIN() en Lenguaje C



La macro MIN() devuelve el valor mínimo entre las variables “a” y “b”. La expresión que muestra la macro MIN() es una condición verdadero/falso donde se aplica una operación relacional “<” entre las variables “a” y “b”. Si 'a' es menor que 'b', se devuelve 'a'. Si 'b' es menor que 'a', se devuelve 'b'.





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

La macro MIN() trabaja con todo tipo de datos en sus entradas y salidas con la única regla de que ambas variables de entrada deben ser valores numéricos.

Esta macro se define en el encabezado 'param.h' de la carpeta 'sys'. Para usarlo, debemos insertarlo en nuestro código de la siguiente manera:



#incluir

Cómo encontrar el mínimo entre dos variables enteras con la macro MIN()

En este ejemplo creamos las variables “a” y “b” de tipo int a las que asignamos un valor arbitrario y a partir de las cuales encontramos el mínimo llamando a la macro MIN(). Luego generamos el valor devuelto usando la función printf().

Para hacer esto, incluimos los encabezados “stdio.h” y “param.h” y abrimos una función main() de tipo void. En él, definimos los números enteros 'a' y 'b' y les asignamos un valor aleatorio. También definimos el número entero “c” para almacenar el resultado.

Luego, llamamos a la macro MIN() y pasamos 'a' y 'b' como argumentos de entrada y 'c' como argumentos de salida. Mostramos el resultado devuelto llamando a la función printf(). El siguiente es el código para este ejemplo:

#incluir

#incluir

vacío principal ( ) {

  En t a = 32 ;

  En t b = 14 ;

  En t C ;

C = MÍNIMO ( a , b ) ;

  imprimirf ( ' \norte El mínimo es %i \norte ' , C ) ;

}

A continuación vemos una imagen con la compilación y ejecución de este código. Como podemos ver, la macro MIN() devuelve el valor de “b” en este caso.

Lo mismo ocurre si utilizamos las variables del tipo doble.

#incluir

#incluir

vacío principal ( ) {

  doble a = 3 ;

  doble b = 1 ;

  doble C ;

C = MÍNIMO ( a , b ) ;

  imprimirf ( ' \norte El mínimo de dobles a y b es %f \norte ' , C ) ;

}


Mínimo y Máximo con Variables de Punto Flotante

La macro MIN() es una función útil, pero no se recomienda su uso para variables que utilizan valores de punto flotante. Para encontrar el mínimo de este tipo de valores, la biblioteca matemática proporciona un conjunto de funciones que se definen en el encabezado 'math.h'. Este conjunto consta de las funciones fmin(), fminf() y fminl(). Veamos la siguiente sintaxis para cada una de estas funciones:

doble fmin ( doble X , doble y ) ;
flotar fminf ( flotar X , flotar y ) ;
largo doble fminl ( largo doble X , largo doble y ) ;

La función fmin() opera sobre datos de tipo double (8 bytes) con punto flotante. La función fminf() trabaja con datos de tipo float (4 bytes), mientras que fminl() trabaja con datos de tipo long double (16 bytes). Además, estas funciones procesan los valores no numéricos (NaN).

Conclusión

En este artículo de Linuxhint, explicamos todo lo que necesita saber para usar la macro MIN() para encontrar el valor mínimo entre dos variables. Analizamos la sintaxis y definición de esta macro, así como la fórmula que aplica una condición de verdadero/falso para una operación 'menor que' (<) entre las dos variables de entrada.

Luego aplicamos la teoría que aprendimos a un ejemplo práctico utilizando fragmentos de código e imágenes para mostrarle cómo trabajar con diferentes tipos de datos. También le mostramos las opciones recomendadas para tratar con números de coma flotante donde no se recomienda el uso de MIN().