ความแตกต่างระหว่างฟังก์ชันมาโครและอินไลน์

สารบัญ:

ความแตกต่างระหว่างฟังก์ชันมาโครและอินไลน์
ความแตกต่างระหว่างฟังก์ชันมาโครและอินไลน์

วีดีโอ: ความแตกต่างระหว่างฟังก์ชันมาโครและอินไลน์

วีดีโอ: ความแตกต่างระหว่างฟังก์ชันมาโครและอินไลน์
วีดีโอ: Excel ขั้นเทพ Macro / VBA | We Mahidol 2024, พฤศจิกายน
Anonim

ความแตกต่างที่สำคัญ – มาโครกับฟังก์ชันอินไลน์

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

รวมมาโครที่จุดเริ่มต้นของโปรแกรมที่นำหน้าด้วยเครื่องหมายแฮช เมื่อมีชื่อมาโครในโปรแกรม มันจะถูกแทนที่ด้วยเนื้อหาของมาโคร

มาโครคืออะไร

ตัวประมวลผลล่วงหน้าเป็นโปรแกรมที่ประมวลผลซอร์สโค้ดก่อนที่จะส่งผ่านคอมไพเลอร์มันทำงานโดยใช้บรรทัดคำสั่งของตัวประมวลผลล่วงหน้าหรือคำสั่ง ในโปรแกรม คำสั่งพรีโปรเซสเซอร์จะถูกวางไว้ในโปรแกรมต้นทางก่อนโปรแกรมหลัก ก่อนที่ซอร์สโค้ดจะผ่านคอมไพเลอร์ ตัวประมวลผลล่วงหน้าจะได้รับการตรวจสอบสำหรับคำสั่งของตัวประมวลผลล่วงหน้า คำสั่งพรีโปรเซสเซอร์มีสัญลักษณ์ต่างจากประโยคอื่นๆ ที่ไม่ได้ลงท้ายด้วยอัฒภาค คำสั่งพรีโปรเซสเซอร์ประเภทหนึ่งคือมาโคร โดยทั่วไปแล้วมาโครจะเขียนด้วยตัวพิมพ์ใหญ่

ความแตกต่างระหว่างฟังก์ชันมาโครและอินไลน์
ความแตกต่างระหว่างฟังก์ชันมาโครและอินไลน์

รูปที่ 01: โปรแกรม C++ พร้อมมาโคร

ตามโปรแกรมด้านบน บรรทัดที่ 3 และบรรทัดที่ 4 หมายถึงมาโคร เมื่อคำนวณพื้นที่ ค่า PI จะถูกแทนที่โดยใช้มาโครที่กำหนดไว้ ในบรรทัดที่ 14 volume=CUBE(value) ตัวประมวลผลล่วงหน้าจะขยายคำสั่งเป็น volume=(valuevaluevalue)การหาลูกบาศก์สามารถเขียนเป็นฟังก์ชันได้ แต่ในที่นี้เขียนโดยใช้มาโคร หากมีคำสั่งเป็น volume=CUBE(x+y) ก็จะขยายเป็น volume=(x+yx+yx+y).

โทเค็นการเขียนโปรแกรมบางตัวอาจพิมพ์ผิดได้ง่าย สามารถแทนที่ได้โดยใช้มาโคร เช่น. define และ &&, define OR ||. คำจำกัดความของมาโครยังสามารถรวมนิพจน์ เช่น define AREA 45.56.

ฟังก์ชันอินไลน์คืออะไร

เมื่อเรียกใช้ฟังก์ชัน คอมไพเลอร์จะใช้เวลาสักครู่ในการดำเนินการ หากฟังก์ชันไม่ซับซ้อนมาก โปรแกรมเมอร์สามารถแปลงฟังก์ชันเป็นฟังก์ชันอินไลน์ได้ อ้างอิงโปรแกรมด้านล่าง

ความแตกต่างระหว่าง Macro และ Inline Function_Figure 2
ความแตกต่างระหว่าง Macro และ Inline Function_Figure 2

รูปที่ 02: ฟังก์ชันที่ไม่มีอินไลน์

print_hello เป็นฟังก์ชันง่ายๆ มันพิมพ์สตริง "สวัสดี" เมื่อเรียกใช้ฟังก์ชัน เวลาดำเนินการสำหรับฟังก์ชันนั้นคือ 0.187 วินาที เมื่อใช้คำสำคัญแบบอินไลน์ดังนี้ เวลาดำเนินการจะลดลงเหลือ 0.064 วินาที

ความแตกต่างที่สำคัญระหว่างฟังก์ชันมาโครและอินไลน์
ความแตกต่างที่สำคัญระหว่างฟังก์ชันมาโครและอินไลน์

รูปที่ 03: ฟังก์ชันอินไลน์

ดังนั้น เมื่อใช้คำสำคัญในบรรทัด เวลาดำเนินการจะลดลง ฟังก์ชันอินไลน์อาจไม่ทำงานหากมีการวนซ้ำ คำสั่ง switch และหากฟังก์ชันมีตัวแปรสแตติกหรือฟังก์ชันแบบเรียกซ้ำ

ฟังก์ชั่นมาโครและอินไลน์ต่างกันอย่างไร

มาโครเทียบกับฟังก์ชันอินไลน์

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

Summary – Macro vs Inline Function

บทความนี้กล่าวถึงความแตกต่างระหว่างฟังก์ชันมาโครและอินไลน์ แนวคิดเหล่านี้ใช้ในการเขียนโปรแกรม C++ ความแตกต่างระหว่างมาโครและฟังก์ชันอินไลน์คือมาโครถูกตรวจสอบโดยตัวประมวลผลล่วงหน้าในขณะที่คอมไพเลอร์ตรวจสอบฟังก์ชันอินไลน์