MIN() มาโครในภาษา C

Min Makhor Ni Phas A C



การดำเนินการเชิงสัมพันธ์ในภาษา C มีการใช้กันอย่างแพร่หลายและสามารถพบได้ในเกือบทุกโปรแกรมที่เขียนในภาษานี้ มีโอเปอเรเตอร์หลายตัวในภาษานี้ - ตัวดำเนินการที่ใช้บ่อยที่สุดคือ ( = ) มากกว่า ( > ) และน้อยกว่า ( < ) การดำเนินการประเภทนี้มักใช้ในเงื่อนไข if ตัวอย่างเช่น เงื่อนไขอินพุตคือค่าของตัวแปร =, > หรือ < ให้กับตัวแปรหรือค่าคงที่อื่น

การดำเนินการเชิงสัมพันธ์เหล่านี้มีประโยชน์มาก แต่มีบางกรณีที่เราต้องรู้ไม่เพียงแค่ว่าตัวแปรตัวหนึ่งมีขนาดใหญ่กว่าหรือเล็กกว่าตัวแปรตัวอื่นเท่านั้น แต่ยังต้องทราบค่าของมันด้วย แม้ว่าจะทำได้อย่างง่ายดายด้วยคำสั่ง 'if' และการดำเนินการเชิงสัมพันธ์แบบธรรมดา แต่ภาษา C ยังมีมาโครพร้อมฟังก์ชันที่ส่งคืนค่าสูงสุดหรือต่ำสุดระหว่างตัวแปรสองตัว

ในบทความ Linuxhint นี้ คุณจะได้เรียนรู้วิธีใช้มาโคร MIN() เพื่อค้นหาค่าต่ำสุดของตัวแปรสองตัว เราจะแสดงไวยากรณ์ วิธีการโทร และประเภทข้อมูลที่ยอมรับ จากนั้น เราจะดูคำอธิบายเกี่ยวกับวิธีการทำงาน และตรวจทานนิพจน์และสูตรที่ใช้มาโครนี้







จากนั้นเราจะใช้สิ่งที่เราเรียนรู้จากตัวอย่างเชิงปฏิบัติซึ่งรวมถึงข้อมูลโค้ดและรูปภาพที่แสดงวิธีค้นหาค่าต่ำสุดด้วยประเภทข้อมูลที่แตกต่างกันเป็นอินพุตของมาโคร MIN()



ไวยากรณ์ของมาโคร MIN() ในภาษา C

นาที ( , )

คำอธิบายของมาโคร MIN() ในภาษา C



มาโคร MIN() ส่งกลับค่าต่ำสุดระหว่างตัวแปร “a” และ “b” นิพจน์ที่แสดงโดยมาโคร MIN() เป็นเงื่อนไขจริง/เท็จซึ่งมีการใช้การดำเนินการเชิงสัมพันธ์ “<” ระหว่างตัวแปร “a” และ “b” ถ้า 'a' น้อยกว่า 'b' จะส่งกลับ 'a' ถ้า 'b' น้อยกว่า 'a' จะส่งกลับ 'b'





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

มาโคร MIN() ใช้งานได้กับข้อมูลทุกประเภทในอินพุตและเอาต์พุตโดยมีกฎเดียวที่ตัวแปรอินพุตทั้งสองต้องเป็นค่าตัวเลข

แมโครนี้ถูกกำหนดไว้ในส่วนหัว 'param.h' ในโฟลเดอร์ 'sys' หากต้องการใช้งาน เราต้องแทรกมันลงในโค้ดของเราดังนี้:



#รวม

วิธีค้นหาค่าต่ำสุดระหว่างตัวแปรจำนวนเต็มสองตัวด้วยมาโคร MIN()

ในตัวอย่างนี้ เราสร้างตัวแปร “a” และ “b” ประเภท int ซึ่งเรากำหนดค่าที่กำหนดเองให้ และจากที่เราหาค่าต่ำสุดโดยการเรียกมาโคร MIN() จากนั้นเราจะส่งออกค่าที่ส่งคืนโดยใช้ฟังก์ชัน printf()

ในการดำเนินการนี้ เราได้รวมส่วนหัว 'stdio.h' และ 'param.h' และเปิดฟังก์ชัน main() ประเภท void ในนั้นเรากำหนดจำนวนเต็ม 'a' และ 'b' และกำหนดค่าด้วยค่าสุ่ม นอกจากนี้เรายังกำหนดจำนวนเต็ม 'c' เพื่อจัดเก็บผลลัพธ์

จากนั้น เราเรียกมาโคร MIN() และส่งผ่าน “a” และ “b” เป็นอาร์กิวเมนต์อินพุต และ “c” เป็นอาร์กิวเมนต์เอาต์พุต เราแสดงผลที่ส่งคืนโดยการเรียกใช้ฟังก์ชัน printf() ต่อไปนี้เป็นรหัสสำหรับตัวอย่างนี้:

#รวม

#รวม

เป็นโมฆะ หลัก ( ) {

ภายใน = 32 ;

ภายใน = 14 ;

ภายใน ;

= นาที ( , ) ;

พิมพ์ฉ ( ' \n ขั้นต่ำคือ %i \n ' , ) ;

}

ต่อไปเราจะเห็นภาพที่มีการคอมไพล์และเรียกใช้โค้ดนี้ ดังที่เราเห็นมาโคร MIN() จะส่งกลับค่า 'b' ในกรณีนี้

สิ่งเดียวกันนี้จะเกิดขึ้นหากเราใช้ตัวแปรประเภทคู่

#รวม

#รวม

เป็นโมฆะ หลัก ( ) {

สองเท่า = 3 ;

สองเท่า = 1 ;

สองเท่า ;

= นาที ( , ) ;

พิมพ์ฉ ( ' \n ค่าต่ำสุดของ a และ b สองเท่าคือ %f \n ' , ) ;

}


ต่ำสุดและสูงสุดพร้อมตัวแปรจุดลอยตัว

มาโคร MIN() เป็นฟังก์ชันที่มีประโยชน์ แต่ไม่แนะนำให้ใช้กับตัวแปรที่ใช้ค่าจุดลอยตัว หากต้องการค้นหาค่าขั้นต่ำประเภทนี้ ไลบรารีคณิตศาสตร์จะมีชุดฟังก์ชันที่กำหนดไว้ในส่วนหัว 'math.h' ชุดนี้ประกอบด้วยฟังก์ชัน fmin(), fminf() และ fminl() ลองดูไวยากรณ์ต่อไปนี้สำหรับแต่ละฟังก์ชันเหล่านี้:

สองเท่า เอฟมิน ( สองเท่า x , สองเท่า และ ) ;
ลอย เอฟมินฟ์ ( ลอย x , ลอย และ ) ;
ยาว สองเท่า เอฟมินล ( ยาว สองเท่า x , ยาว สองเท่า และ ) ;

ฟังก์ชัน fmin() ทำงานกับข้อมูลประเภท double (8 ไบต์) ที่มีจุดลอยตัว ฟังก์ชัน fminf() ทำงานกับข้อมูลประเภท float (4 ไบต์) ในขณะที่ fminl() ทำงานกับข้อมูลประเภท long double (16 ไบต์) นอกจากนี้ ฟังก์ชันเหล่านี้จะประมวลผลค่าที่ไม่ใช่ตัวเลข (NaN)

บทสรุป

ในบทความ Linuxhint นี้ เราได้อธิบายทุกสิ่งที่คุณจำเป็นต้องรู้เพื่อใช้มาโคร MIN() เพื่อค้นหาค่าต่ำสุดระหว่างตัวแปรสองตัว เราดูที่ไวยากรณ์และคำจำกัดความของมาโครนี้ รวมถึงสูตรที่ใช้เงื่อนไขจริง/เท็จสำหรับการดำเนินการ 'น้อยกว่า' (<) ระหว่างตัวแปรอินพุตสองตัว

จากนั้นเราได้นำทฤษฎีที่ได้เรียนรู้ไปใช้กับตัวอย่างเชิงปฏิบัติโดยใช้ข้อมูลโค้ดและรูปภาพเพื่อแสดงวิธีทำงานกับข้อมูลประเภทต่างๆ นอกจากนี้เรายังแสดงตัวเลือกที่แนะนำเพื่อจัดการกับตัวเลขทศนิยมที่ไม่แนะนำให้ใช้ MIN()