ความแตกต่างระหว่างอินไลน์และมาโคร ความแตกต่างระหว่าง
อินไลน์หรือมาโคร
C ++ ได้ไปไกลเกินกว่าในด้านการเขียนโปรแกรมคอมพิวเตอร์ในปัจจุบัน เป็นภาษาที่มีประสิทธิภาพบางครั้งอาจทำให้สับสนเล็กน้อยกับโปรแกรมเมอร์เนื่องจากไลบรารีฟังก์ชันใหญ่ ๆ ฟังก์ชันอินไลน์เป็นหนึ่งในนั้นซึ่งสามารถสับสนกับมาโครในภาษาได้ง่าย
ไม่ใช่ว่ามีความแตกต่างเล็กน้อยระหว่างทั้งสอง แต่อาจทำให้สับสนได้เนื่องจากคุณสมบัติที่พวกเขายึด ในบทความนี้เราจะพูดถึงความแตกต่างระหว่างฟังก์ชันอินไลน์และแมโครใน C ++
- อินไลน์ฟังก์ชันอินไลน์เหมือนกับฟังก์ชันอื่น ๆ ใน C + + และเรียกอีกอย่างว่าปกติ ฟังก์ชั่นที่ทำการทำคือสร้างสำเนาของคำจำกัดความฟังก์ชั่นที่คอมไพล์แล้ว นั่นคือสร้างสำเนาของรายการที่กำหนดเพื่อคอมไพล์ ตัวอย่างที่สามารถนำมาได้ถ้าเราเพิ่มสองจำนวนเต็มและเรียกใช้ฟังก์ชันอินไลน์คอมไพเลอร์จะสร้างสำเนาของจำนวนเต็มที่จะรวบรวม
ตัวอย่าง:
(int x, int y)
{กลับ (x + y);
}
แมโคร
มาโครใน C ++ ใช้การแทนที่ข้อความในบรรทัดโปรแกรม นั่นคือพวกเขาแทนที่ข้อความตามการเปลี่ยนแปลงที่กำหนดไว้ในฟังก์ชัน ไม่เหมือนกับอินไลน์เป็นฟังก์ชันแมโครจะจัดการกับโค้ดโดยใช้ฟังก์ชัน ตัวอย่างเช่น:
#define DOUBLE (X) X * X
int y = 5;
int j = DOUBLE (++ y);
ที่นี่เราจะได้รับค่าเป็น 30! เมื่อการโทรผ่านทางมาโคร "X" ถูกแทนที่ด้วย + + y ซึ่งทำให้ + + y ถูกคูณด้วย + ++ y อีก นี้ทำให้จำนวน 5 * 6 ที่ 30 ไม่ 6 หกจะเป็นพื้นฐาน แต่คำตอบผิด
ขณะนี้มาโครอาจก่อให้เกิดข้อบกพร่องที่นี่ ดังนั้นฟังก์ชันอินไลน์มาช่วยโดยการคัดลอกค่าไปยังหน่วยความจำของคอมไพเลอร์แล้วรวบรวมข้อมูล
สรุป:1. ฟังก์ชันแบบอินไลน์จะสร้างสำเนาของคำจำกัดความฟังก์ชัน
2 แมโครแทนที่ข้อความตามที่ระบุและกำหนดไว้ภายในฟังก์ชัน
3 ฟังก์ชันแบบอินไลน์จะถูกใช้เมื่อแมโครควรจะทำให้เกิดข้อบกพร่องในโปรแกรม