Макрос MIN() на языке C

Makros Min Na Azyke C



Реляционные операции в C широко используются и их можно найти практически в каждой программе, написанной на этом языке. В этом языке есть несколько операторов: наиболее часто используемые — «равно» (=), «больше» (>) и «меньше» (<). Этот тип операции часто используется в if-условиях. Например, входное условие — это значение переменной =, > или < для другой переменной или константы.

Эти реляционные операции очень полезны. Но бывают случаи, когда нам нужно не только знать, больше или меньше одна переменная, чем другая, но и получить ее значение. Хотя это легко сделать с помощью операторов «if» и простых реляционных операций, язык C также предоставляет макросы с функциями, которые возвращают максимальное или минимальное значение между двумя переменными.

В этой статье Linuxhint вы узнаете, как использовать макрос MIN() для поиска минимального значения двух переменных. Мы покажем вам синтаксис, вызывающий метод и тип данных, который он принимает. Затем мы рассмотрим описание того, как он работает, и рассмотрим выражение и формулу, которые применяет этот макрос.







Затем мы применим то, что мы узнали на практическом примере, который включает фрагменты кода и изображения, показывающие, как найти минимум с различными типами данных в качестве входных данных для макроса MIN().



Синтаксис макроса MIN() на языке C

МИН ( а , б )

Описание макроса MIN() на языке C



Макрос MIN() возвращает минимальное значение между переменными «a» и «b». Выражение, отображаемое макросом MIN(), представляет собой условие true/false, при котором между переменными «a» и «b» применяется реляционная операция «<». Если «a» меньше «b», возвращается «a». Если «b» меньше «a», возвращается «b».





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

Макрос MIN() работает со всеми типами данных на своих входах и выходах с единственным правилом: обе входные переменные должны быть числовыми значениями.

Этот макрос определен в заголовке «param.h» в папке «sys». Чтобы использовать его, нам нужно вставить его в наш код следующим образом:



#include

Как найти минимум между двумя целочисленными переменными с помощью макроса MIN()

В этом примере мы создаем переменные «a» и «b» типа int, которым присваиваем произвольное значение и из которых находим минимум, вызывая макрос MIN(). Затем мы выводим возвращаемое значение с помощью функции printf().

Для этого мы включаем заголовки «stdio.h» и «param.h» и открываем функцию main() типа void. В нем мы определяем целые числа «a» и «b» и присваиваем им случайное значение. Мы также определяем целое число «c» для хранения результата.

Затем мы вызываем макрос MIN() и передаем «a» и «b» в качестве входных аргументов и «c» в качестве выходных аргументов. Мы отображаем возвращенный результат, вызывая функцию printf(). Ниже приведен код для этого примера:

#include

#include

пустота основной ( ) {

интервал а '=' 32 ;

интервал б '=' 14 ;

интервал с ;

с '=' МИН ( а , б ) ;

печать ( ' \п Минимум – %i \п ' , с ) ;

}

Далее мы видим изображение с компиляцией и выполнением этого кода. Как мы видим, макрос MIN() в этом случае возвращает значение «b».

То же самое произойдет, если мы используем переменные типа double.

#include

#include

пустота основной ( ) {

двойной а '=' 3 ;

двойной б '=' 1 ;

двойной с ;

с '=' МИН ( а , б ) ;

печать ( ' \п Минимум дублей a и b равен %f. \п ' , с ) ;

}


Минимум и максимум с переменными с плавающей запятой

Макрос MIN() — полезная функция, но его использование не рекомендуется для переменных, использующих значения с плавающей запятой. Чтобы найти минимум таких значений, математическая библиотека предоставляет набор функций, определенных в заголовке «math.h». Этот набор состоит из функций fmin(), fminf() и fminl(). Давайте посмотрим на следующий синтаксис для каждой из этих функций:

двойной fmin ( двойной Икс , двойной и ) ;
плавать фминф ( плавать Икс , плавать и ) ;
длинный двойной фминл ( длинный двойной Икс , длинный двойной и ) ;

Функция fmin() работает с данными типа double (8 байт) с плавающей запятой. Функция fminf() работает с данными типа float (4 байта), а fminl() — с данными типа long double (16 байт). Кроме того, эти функции обрабатывают нечисловые значения (NaN).

Заключение

В этой статье Linuxhint мы объяснили все, что вам нужно знать, чтобы использовать макрос MIN() для поиска минимального значения между двумя переменными. Мы рассмотрели синтаксис и определение этого макроса, а также формулу, которая применяет условие true/false для операции «меньше чем» (<) между двумя входными переменными.

Затем мы применили изученную теорию к практическому примеру, используя фрагменты кода и изображения, чтобы показать вам, как работать с различными типами данных. Мы также показали вам рекомендуемые варианты работы с числами с плавающей запятой, где использование MIN() не рекомендуется.