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

ประโยชน์ของ Inline Functions ใน C++

บทนำ

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

การเปลี่ยนแปลง inline function อาจต้องคอมไพล์ไคลเอนต์ทั้งหมดใหม่ เพราะคอมไพเลอร์ต้องแทนที่โค้ดอีกครั้ง มิฉะนั้นจะยังคงทำงานแบบเดิม

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

การนิยามฟังก์ชันในคลาสเป็น inline function แม้ไม่ระบุคีย์เวิร์ด inline ก็ตาม

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

inline int Max(int x, int y) {
    return (x > y) ? x : y;
}

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

ประโยชน์ของ Inline Functions

  • ไม่มี overhead จากการเรียกฟังก์ชัน
  • ประหยัด overhead การ push/pop ตัวแปรบน stack เมื่อเรียกฟังก์ชัน
  • ประหยัด overhead การคืนค่าจากฟังก์ชัน
  • คอมไพเลอร์อาจทำ optimization เฉพาะบริบทบน body ของ inline function ซึ่งฟังก์ชันทั่วไปไม่ได้
  • Inline function ขนาดเล็กอาจมีประโยชน์สำหรับระบบฝังตัว (embedded systems) เพราะ inline ให้โค้ดน้อยกว่าการเรียกฟังก์ชันทั่วไป