Macro MIN() trong ngôn ngữ C

Macro Min Trong Ngon Ngu C



Các phép toán quan hệ trong C được sử dụng rộng rãi và có thể tìm thấy trong hầu hết các chương trình được viết bằng ngôn ngữ này. Có một số toán tử trong ngôn ngữ này – những toán tử được sử dụng phổ biến nhất là bằng ( = ), lớn hơn ( > ) và nhỏ hơn ( < ). Loại hoạt động này thường được sử dụng trong điều kiện if. Ví dụ: điều kiện đầu vào là giá trị của biến =, > hoặc < đối với một biến hoặc hằng số khác.

Những hoạt động quan hệ này rất hữu ích. Nhưng có những trường hợp chúng ta không chỉ cần biết một biến này lớn hơn hay nhỏ hơn biến kia mà còn phải biết giá trị của nó. Mặc dù điều này có thể dễ dàng thực hiện bằng các câu lệnh “if” và các phép toán quan hệ đơn giản, ngôn ngữ C cũng cung cấp các macro với các hàm trả về giá trị lớn nhất hoặc nhỏ nhất giữa hai biến.

Trong bài viết Linuxhint này, bạn sẽ tìm hiểu cách sử dụng macro MIN() để tìm giá trị nhỏ nhất của hai biến. Chúng tôi sẽ chỉ cho bạn cú pháp, phương thức gọi và kiểu dữ liệu mà nó chấp nhận. Sau đó, chúng ta sẽ xem mô tả về cách thức hoạt động của macro này cũng như xem xét biểu thức và công thức mà macro này áp dụng.







Sau đó, chúng tôi áp dụng những gì đã học vào một ví dụ thực tế bao gồm các đoạn mã và hình ảnh cho biết cách tìm giá trị tối thiểu với các loại dữ liệu khác nhau làm đầu vào cho macro MIN().



Cú pháp Macro MIN() trong ngôn ngữ C

PHÚT ( Một , b )

Mô tả Macro MIN() trong ngôn ngữ C



Macro MIN() trả về giá trị nhỏ nhất giữa các biến “a” và “b”. Biểu thức được macro MIN() hiển thị là điều kiện đúng/sai trong đó phép toán quan hệ “<” được áp dụng giữa các biến “a” và “b”. Nếu “a” nhỏ hơn “b” thì trả về “a”. Nếu “b” nhỏ hơn “a” thì trả về “b”.





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

Macro MIN() hoạt động với tất cả các loại dữ liệu ở đầu vào và đầu ra của nó với quy tắc duy nhất là cả hai biến đầu vào phải là giá trị số.

Macro này được xác định trong tiêu đề “param.h” trong thư mục “sys”. Để sử dụng nó, chúng ta cần chèn nó vào mã của mình như sau:



#include

Cách tìm giá trị nhỏ nhất giữa hai biến số nguyên bằng macro MIN()

Trong ví dụ này, chúng ta tạo các biến “a” và “b” kiểu int mà chúng ta gán một giá trị tùy ý và từ đó chúng ta tìm giá trị nhỏ nhất bằng cách gọi macro MIN(). Sau đó chúng ta xuất giá trị trả về bằng hàm printf().

Để thực hiện việc này, chúng tôi bao gồm các tiêu đề “stdio.h” và “param.h” và mở hàm main() thuộc loại void. Trong đó, chúng tôi xác định các số nguyên “a” và “b” và gán chúng với một giá trị ngẫu nhiên. Chúng tôi cũng xác định số nguyên “c” để lưu trữ kết quả.

Sau đó, chúng ta gọi macro MIN() và chuyển “a” và “b” làm đối số đầu vào và “c” làm đối số đầu ra. Chúng ta hiển thị kết quả trả về bằng cách gọi hàm printf(). Sau đây là mã cho ví dụ này:

#include

#include

trống rỗng chủ yếu ( ) {

int Một = 32 ;

int b = 14 ;

int c ;

c = PHÚT ( Một , b ) ;

printf ( ' \N Tối thiểu là %i \N ' , c ) ;

}

Tiếp theo, chúng ta thấy một hình ảnh về quá trình biên dịch và thực thi mã này. Như chúng ta có thể thấy, macro MIN() trả về giá trị “b” trong trường hợp này.

Điều tương tự cũng xảy ra nếu chúng ta sử dụng các biến kiểu double.

#include

#include

trống rỗng chủ yếu ( ) {

gấp đôi Một = 3 ;

gấp đôi b = 1 ;

gấp đôi c ;

c = PHÚT ( Một , b ) ;

printf ( ' \N Tối thiểu của nhân đôi a và b là %f \N ' , c ) ;

}


Tối thiểu và tối đa với các biến dấu phẩy động

Macro MIN() là một hàm hữu ích nhưng việc sử dụng nó không được khuyến nghị cho các biến sử dụng giá trị dấu phẩy động. Để tìm giá trị nhỏ nhất của loại giá trị này, thư viện toán học cung cấp một tập hợp các hàm được xác định trong tiêu đề “math.h”. Bộ này bao gồm các hàm fmin(), fminf() và fminl(). Hãy xem cú pháp sau cho từng hàm sau:

gấp đôi fmin ( gấp đôi x , gấp đôi ) ;
trôi nổi chết tiệt ( trôi nổi x , trôi nổi ) ;
dài gấp đôi fminl ( dài gấp đôi x , dài gấp đôi ) ;

Hàm fmin() hoạt động trên dữ liệu kiểu double (8 byte) có dấu phẩy động. Hàm fminf() hoạt động với dữ liệu kiểu float (4 byte), trong khi fminl() hoạt động với dữ liệu kiểu long double (16 byte). Ngoài ra, các hàm này xử lý các giá trị không phải số (NaN).

Phần kết luận

Trong bài viết Linuxhint này, chúng tôi đã giải thích mọi điều bạn cần biết để sử dụng macro MIN() nhằm tìm giá trị nhỏ nhất giữa hai biến. Chúng tôi đã xem xét cú pháp và định nghĩa của macro này cũng như công thức áp dụng điều kiện đúng/sai cho phép toán “nhỏ hơn” (<) giữa hai biến đầu vào.

Sau đó, chúng tôi áp dụng lý thuyết đã học vào một ví dụ thực tế sử dụng các đoạn mã và hình ảnh để chỉ cho bạn cách làm việc với các loại dữ liệu khác nhau. Chúng tôi cũng đã chỉ cho bạn các tùy chọn được đề xuất để xử lý các số dấu phẩy động khi không nên sử dụng MIN().