Makro MIN() w języku C

Makro Min W Jezyku C



Operacje relacyjne w C są szeroko stosowane i można je znaleźć w prawie każdym programie napisanym w tym języku. W tym języku istnieje kilka operatorów – najczęściej używane to: równy (=), większy niż (>) i mniejszy niż (<). Ten typ operacji jest często używany w warunkach if. Na przykład warunkiem wejściowym jest wartość zmiennej =, > lub < innej zmiennej lub stałej.

Te operacje relacyjne są bardzo przydatne. Są jednak przypadki, w których musimy wiedzieć nie tylko, czy jedna zmienna jest większa, czy mniejsza od drugiej, ale także poznać jej wartość. Chociaż można to łatwo zrobić za pomocą instrukcji „if” i prostych operacji relacyjnych, język C udostępnia również makra z funkcjami, które zwracają maksymalną lub minimalną wartość między dwiema zmiennymi.

W tym artykule Linuxhint dowiesz się, jak używać makra MIN() do znajdowania minimalnej wartości dwóch zmiennych. Pokażemy Ci składnię, metodę wywoływania i akceptowany typ danych. Następnie przyjrzymy się opisowi działania tego makro oraz przeanalizujemy wyrażenia i formuły stosowane przez to makro.







Następnie stosujemy to, czego się nauczyliśmy, w praktycznym przykładzie, który zawiera fragmenty kodu i obrazy pokazujące, jak znaleźć minimum przy różnych typach danych jako danych wejściowych makra MIN().



Składnia makra MIN() w języku C

MIN ( A , B )

Opis makra MIN() w języku C



Makro MIN() zwraca minimalną wartość pomiędzy zmiennymi „a” i „b”. Wyrażenie wyświetlane przez makro MIN() jest warunkiem prawda/fałsz, w którym pomiędzy zmiennymi „a” i „b” stosowana jest operacja relacyjna „<”. Jeśli „a” jest mniejsze niż „b”, zwracane jest „a”. Jeśli „b” jest mniejsze niż „a”, zwracane jest „b”.





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

Makro MIN() współpracuje ze wszystkimi typami danych na swoich wejściach i wyjściach, z tą jedyną zasadą, że obie zmienne wejściowe muszą być wartościami numerycznymi.

To makro jest zdefiniowane w nagłówku „param.h” w folderze „sys”. Aby z niego skorzystać, musimy wstawić go do naszego kodu w następujący sposób:



#include

Jak znaleźć minimum między dwiema zmiennymi całkowitymi za pomocą makra MIN()

W tym przykładzie tworzymy zmienne „a” i „b” typu int, którym przypisujemy dowolną wartość i z których znajdujemy minimum wywołując makro MIN(). Następnie wyprowadzamy zwróconą wartość za pomocą funkcji printf().

Aby to zrobić, dołączamy nagłówki „stdio.h” i „param.h” i otwieramy funkcję main() typu void. Definiujemy w nim liczby całkowite „a” i „b” i przypisujemy im losową wartość. Definiujemy również liczbę całkowitą „c”, w której przechowywany jest wynik.

Następnie wywołujemy makro MIN() i przekazujemy „a” i „b” jako argumenty wejściowe oraz „c” jako argumenty wyjściowe. Zwrócony wynik wyświetlamy wywołując funkcję printf(). Poniżej znajduje się kod dla tego przykładu:

#include

#include

próżnia główny ( ) {

wew A = 32 ;

wew B = 14 ;

wew C ;

C = MIN ( A , B ) ;

drukuj ( ' \N Minimalna wartość to %i \N ' , C ) ;

}

Następnie widzimy obraz z kompilacją i wykonaniem tego kodu. Jak widzimy, makro MIN() zwraca w tym przypadku wartość „b”.

To samo dzieje się, jeśli użyjemy zmiennych typu double.

#include

#include

próżnia główny ( ) {

podwójnie A = 3 ;

podwójnie B = 1 ;

podwójnie C ;

C = MIN ( A , B ) ;

drukuj ( ' \N Minimalna liczba podwojeń aib to %f \N ' , C ) ;

}


Minimum i maksimum ze zmiennymi zmiennoprzecinkowymi

Makro MIN() jest użyteczną funkcją, ale jej użycie nie jest zalecane w przypadku zmiennych korzystających z wartości zmiennoprzecinkowych. Aby znaleźć minimum tego rodzaju wartości, biblioteka math udostępnia zestaw funkcji zdefiniowanych w nagłówku „math.h”. Zestaw ten składa się z funkcji fmin(), fminf() i fminl(). Przyjrzyjmy się następującej składni każdej z tych funkcji:

podwójnie min ( podwójnie X , podwójnie I ) ;
platforma fminf ( platforma X , platforma I ) ;
długi podwójnie min ( długi podwójnie X , długi podwójnie I ) ;

Funkcja fmin() operuje na danych typu double (8 bajtów) o liczbie zmiennoprzecinkowej. Funkcja fminf() działa z danymi typu float (4 bajty), natomiast fminl() działa z danymi typu long double (16 bajtów). Funkcje te przetwarzają również wartości nienumeryczne (NaN).

Wniosek

W tym artykule Linuxhint wyjaśniliśmy wszystko, co musisz wiedzieć, aby użyć makra MIN() do znalezienia minimalnej wartości między dwiema zmiennymi. Przyjrzeliśmy się składni i definicji tego makra, a także formule stosującej warunek prawda/fałsz dla operacji „mniejsze niż” (<) między dwiema zmiennymi wejściowymi.

Następnie zastosowaliśmy poznaną teorię do praktycznego przykładu, wykorzystując fragmenty kodu i obrazy, aby pokazać, jak pracować z różnymi typami danych. Pokazaliśmy także zalecane opcje postępowania z liczbami zmiennoprzecinkowymi, w których nie zaleca się używania funkcji MIN().