Тези релационни операции са много полезни. Но има случаи, в които трябва да знаем не само дали една променлива е по-голяма или по-малка от друга, но и да получим нейната стойност. Въпреки че това се прави лесно с изрази „if“ и прости релационни операции, езикът C предоставя също макроси с функции, които връщат максималната или минималната стойност между две променливи.
В тази статия за Linuxhint ще научите как да използвате макроса MIN(), за да намерите минималната стойност на две променливи. Ще ви покажем синтаксиса, метода за извикване и типа данни, които приема. След това ще разгледаме описание на това как работи и ще прегледаме израза и формулата, които този макрос прилага.
След това прилагаме наученото в практически пример, който включва кодови фрагменти и изображения, които показват как да намерим минимума с различни типове данни като входни данни за макроса MIN().
Синтаксис на макроса MIN() в езика C
МИН ( а , b )Описание на макроса 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 ;
вътр b = 14 ;
вътр ° С ;
° С = МИН ( а , b ) ;
printf ( ' \н Минимумът е %i \н ' , ° С ) ;
}
След това виждаме изображение с компилирането и изпълнението на този код. Както виждаме, макросът MIN() връща стойността на „b“ в този случай.
Същото се случва, ако използваме променливите от типа double.
#include#include
невалиден основен ( ) {
двойно а = 3 ;
двойно b = 1 ;
двойно ° С ;
° С = МИН ( а , b ) ;
printf ( ' \н Минимумът на двойните a и b е %f \н ' , ° С ) ;
}
Минимум и максимум с променливи с плаваща запетая
Макросът MIN() е полезна функция, но използването му не се препоръчва за променливи, които използват стойности с плаваща запетая. За да намерите минималната от този вид стойности, математическата библиотека предоставя набор от функции, който е дефиниран в заглавката „math.h“. Този набор се състои от функциите fmin(), fminf() и fminl(). Нека да разгледаме следния синтаксис за всяка от тези функции:
двойно fмин ( двойно х , двойно и ) ;плавам fminf ( плавам х , плавам и ) ;
дълго двойно fminl ( дълго двойно х , дълго двойно и ) ;
Функцията fmin() работи с данни от тип double (8 байта) с плаваща запетая. Функцията fminf() работи с данни от тип float (4 байта), докато fminl() работи с данни от тип long double (16 байта). Освен това тези функции обработват нечисловите стойности (NaN).
Заключение
В тази статия за Linuxhint обяснихме всичко, което трябва да знаете, за да използвате макроса MIN(), за да намерите минималната стойност между две променливи. Разгледахме синтаксиса и дефиницията на този макрос, както и формулата, която прилага условие true/false за операция „по-малко от“ (<) между двете входни променливи.
След това приложихме теорията, която научихме, към практически пример, използвайки кодовите фрагменти и изображения, за да ви покажем как да работите с различни типове данни. Показахме ви и препоръчителните опции за работа с числа с плаваща запетая, където не се препоръчва използването на MIN().