Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ประโยชน์ของฟังก์ชันอินไลน์ใน C ++?


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

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

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

นิยามฟังก์ชันในนิยามคลาสคือนิยามฟังก์ชันอินไลน์ แม้จะไม่ได้ใช้ตัวระบุอินไลน์ก็ตาม

ต่อไปนี้เป็นตัวอย่างซึ่งใช้ฟังก์ชันอินไลน์เพื่อส่งกลับค่าสูงสุดของตัวเลขสองตัว -

ตัวอย่าง

#include <iostream>
using namespace std;
inline int Max(int x, int y) {
   return (x > y)? x : y;
}
// Main function for the program
int main() {
   cout << "Max (20,10): " << Max(20,10) << endl;
   cout << "Max (0,200): " << Max(0,200) << endl;
   cout << "Max (100,1010): " << Max(100,1010) << endl;
   return 0;
}

ผลลัพธ์

Max (20,10): 20
Max (0,200): 200
Max (100,1010): 1010

ตอนนี้เรามาดูกันว่าอะไรคือประโยชน์ของการใช้ฟังก์ชันอินไลน์ในโค้ดของเรา -

  • ที่นี่ไม่มีการเรียกโอเวอร์เฮดของฟังก์ชัน

  • จะบันทึกโอเวอร์เฮดของตัวแปรพุชและป๊อปในสแต็ก เมื่อเรียกใช้ฟังก์ชัน

  • ช่วยประหยัดค่าใช้จ่ายในการโทรกลับจากฟังก์ชัน

  • เมื่อมีการสร้างฟังก์ชันแบบอินไลน์ขึ้น คอมไพเลอร์อาจดำเนินการปรับให้เหมาะสมตามบริบทเฉพาะบนเนื้อหาของฟังก์ชัน การปรับให้เหมาะสมประเภทนี้ไม่ได้ดำเนินการสำหรับฟังก์ชันปกติ

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