C++ इंलाइन फंक्शन एक शक्तिशाली अवधारणा है जिसे आमतौर पर क्लासेस के साथ उपयोग किया जाता है। यदि कोई फंक्शन इंलाइन है, तो कंपाइलर उस फंक्शन के कोड की एक प्रति को प्रत्येक उस बिंदु पर रखता है जहां कंपाइल टाइम पर फंक्शन को कॉल किया जाता है।
इंलाइन फंक्शन में कोई भी परिवर्तन फंक्शन के सभी क्लाइंट को पुनः कंपाइल करने की आवश्यकता हो सकती है क्योंकि कंपाइलर को एक बार फिर से सभी कोड को बदलना होगा अन्यथा यह पुरानी कार्यक्षमता के साथ जारी रहेगा।
किसी फंक्शन को इंलाइन करने के लिए, फंक्शन नाम से पहले इंलाइन कीवर्ड रखें और फंक्शन को किसी भी कॉल से पहले परिभाषित करें। यदि परिभाषित फंक्शन एक लाइन से अधिक है तो कंपाइलर इंलाइन क्वालिफायर को अनदेखा कर सकता है।
क्लास परिभाषा में एक फंक्शन परिभाषा, इंलाइन स्पेसिफायर के उपयोग के बिना भी एक इंलाइन फंक्शन परिभाषा है।
निम्नलिखित एक उदाहरण है, जो दो संख्याओं में से अधिकतम वापस करने के लिए इंलाइन फंक्शन का उपयोग करता है:
उदाहरण
#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
आइए अब देखते हैं कि हमारे कोड में इंलाइन फंक्शन का उपयोग करने के क्या लाभ हैं:
यहां फंक्शन कॉल ओवरहेड नहीं होता।
यह स्टैक पर पुश और पॉप वेरिएबल के ओवरहेड को बचाता है, जब फंक्शन को कॉल किया जाता है।
यह फंक्शन से रिटर्न कॉल के ओवरहेड को बचाता है।
जब एक इंलाइन फंक्शन बनाया जाता है, तो कंपाइलर फंक्शन के बॉडी पर संदर्भ-विशिष्ट ऑप्टिमाइज़ेशन कर सकता है। इस तरह के ऑप्टिमाइज़ेशन सामान्य फंक्शन के लिए नहीं किए जाते।
छोटे इंलाइन फंक्शन का उपयोग एम्बेडेड सिस्टम के लिए उपयोगी हो सकता है, क्योंकि इंलाइन फंक्शन कॉल प्रीएंबल और रिटर्न से कम कोड दे सकता है।