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