Inline Function in C++: किसी भी Class के Member Function को Define करने के दो तरीके होते हैं। पिछले पन्नों में हमनें जो तरीका Use करके Function को Define किया है वह एक सामान्य तरीका है। जब हम किसी Function को Call करते हैं तो Calling Function से Program Control Called Function में Jump करता है और Called Function के Statements को Execute करके वापस Calling Function में Jump करता है।
समस्या ये है कि एक ही प्रकार के Statements को Execute करने के लिए हम हमारे Program में किसी Function को बार-बार Call करते हैं, जिससे Program Control कई बार Calling Function से Called Function व Called Function से Calling Function में Jump करता है।
इस तरीके से बार-बार Program Control जो Jumping करता है उसमें CPU काफी समय फालतू में व्यर्थ करता है। कई बार ऐसा भी होता है कि Called Function स्वयं अपने आप को ही Call कर लेता है। इस स्थिति को Recursion कहा जाता है।
जब कोई Function Recursion की स्थिति में होता है तब वह केवल स्वयं को ही Call नहीं करता बल्कि Calling के समय वह अपने पिछले मानों को भी Save करता है और Called Function को कुछ मान भी भेजता है। इस तरह की Calling में Function को कई बार जो Jumping करनी पडती है उससे काफी समय बर्बाद होता है जिसका असर Program की Speed पर पडता है। यदि कुछ Functions जो कि काफी छोटे हों, को Memory में ही Store कर के रख लिया जाए, तो बार-बार Function को Call करने पर Function Memory में Load व Unload नहीं होगा।
जिससे Program Control को ज्यादा Jumping नहीं करनी पडेगी। “C++” के Compiler को Design करने वाले Designers ने इस बात को समझा और “C++” के Compiler में Inline Function की व्यवस्था कर दी।
Inline Function एक ऐसा Function होता है जिसे Call करने पर Program Control उस Called Function में नहीं जाता, बल्कि Program Control जहां पर होता है वहीं पर Inline Function Expand हो जाता है और Program अपने Normal Flow में Execute होता रहता है। Inline Function को Execute करने के लिए Program Control को Jumping में किसी प्रकार का समय Waste नहीं करना पडता।
किसी Function को Inline Function बनाने के लिए हमें केवल Define किए जा रहे Function के पहले Keyword inline का प्रयोग करना होता है। यानी हम निम्नानुसार किसी भी Function को Inline Declare कर सकते हैं:
inline void PoundsToKG(float pounds) { float kilograms = 0.453592 * pounds; cout << “Pound = “ << pounds << endl ; cout << “Kilograms = “ << kilograms << endl; }
जिस Function को हम Inline Define करते हैं उस Function का Prototype Declaration करते समय भी हमें inline Keyword का प्रयोग करना जरूरी होता है। जैसे यदि हम उपरोक्त Function का Prototype Declare करें तो हमें निम्नानुसार Statement लिखना होगा:
inline void PoundsToKG(float);
लेकिन जब हम इस Function को किसी जगह पर Call करेंगे तो हमें उस समय इसे उसी तरह से Call करना होता है जिस तरह से हम किसी अन्य Function को Call करते हैं। यानी:
PoundsToKG(50);
किसी Inline Function को Call करते समय हमें inline Keyword का प्रयोग करने की जरूरत नहीं होती है।
हालांकि हम किसी भी Function को Inline Declare कर सकते हैं। लेकिन हमें कुछ परिस्थितियों को ध्यान में रखते हुए ही किसी भी Function को Inline Declare करना चाहिए। यदि किसी Function में कुछ ज्यादा Statements हों और वह Function को किसी Program में बार-बार Call करना पड रहा हो, तब ऐसे Function को Inline Declare करने पर काफी अधिक Memory की जरूरत पडेगी, जिससे Program पर अधिक Load पडेगा।
हमें केवल उन्हीं Functions को Inline Declare करना चाहिए जो कि छोटे हों। अन्यथा सभी Functions को Normal ही रखना चाहिए। यदि किसी बडे व जटिल Function को Inline Declare किया तो काफी अधिक Memory Use होगी और बदले में उतना समय नहीं बचाया जा सकेगा। वैसे हमें बहुत ही कम अवसरों पर किसी Function को Inline घोषित करने की जरूरत होती है। (Inline Function in C++ – Wiki)
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook C++ Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
C++ Programming Language in Hindi | Page: 666 | Format: PDF