Introduction to C++ Inline Functions

Introduction to C++ Inline Functions

 
C++ Inline Functions

C++ Inline Functions

जब program किसी normal function को execute करता है तो सबसे पहले CPU function call statement के बाद वाले statement का memory address store करता है। ऐसा इसलिए किया जाता है ताकि function के execute होने के बाद इस statement से execution शुरू किया जा सके। इसके बाद compiler arguments को stack में copy करता है। इसके बाद control function को transfer हो जाता है। इसके बाद CPU function code को execute करता है और return value को register में store करता है। इसके बाद control वापस function calling statement को चला जाता है।

जब किसी function का calling time उसके execution time से अधिक होता है तो उसे overhead माना जाता है। Calling time वह time होता है जो CPU को function call और function execution के बीच लगता है। क्योंकि CPU एक memory location से दूसरी memory location पर switch करता है और उसके बाद function को execute करता है और फिर उसके बाद वापस actual location पर return करता है। इस process में काफी अधिक समय लग जाता है।

बड़े functions जिनको execute होने में अधिक समय लगता है उनके लिए इस time को appropriate माना जा सकता है। लेकिन छोटे functions जो बहुत कम समय में execute हो जाते है उनके लिए एक memory location से दूसरी memory location में switch होने का time waste करना appropriate नहीं होता है। हालाँकि हो सकता है की अभी ये time आपको महत्वपूर्ण ना लगे लेकिन जब बात बड़े projects की आती है तो execution time reduce करना एक priority होती है।

इस situation में छोटे functions द्वारा waste किये जा रहे function calling time को save करने के लिए C++ आपको एक mechanism provide करती है जिसे inline function कहते है।
Inline function C++ में एक important feature है। जब आप किसी function को inline define करते है तो उस function को execute करने के लिए compiler memory location switch नहीं करता है। इसके बजाय compiler calling statement को function definition से replace कर देता है। ये काम compiler के द्वारा compile time पर किया जाता है।

एक बात ध्यान रखने योग्य है की जब आप किसी function को inline define करते है तो ये compiler के लिए सिर्फ एक request होती है। जरुरी नहीं की compiler इस function को inline करे। Compiler इसे ignore भी कर सकता है।

यदि किसी function में loop होता है, static variables होते है, switch और goto statement होते है या फिर यदि function recursive होता है तो ऐसी situation में compiler function को inline नहीं करता है।
जब आपको program की efficiency बढ़ाने की आवश्यकता हो तो आप inline function को use कर सकते है। Macros के साथ आने वाली problems को eliminate करने के लिए भी inline functions को use किया जाता है।

Share this

Related Posts

Previous
Next Post »

please comment your choice game ...