मुख्य अंतर - मैक्रो बनाम इनलाइन फ़ंक्शन
एक मैक्रो कोड का एक टुकड़ा है, जो एक प्रीप्रोसेसर निर्देश है। एक इनलाइन फ़ंक्शन एक प्रोग्राम के निष्पादन समय को कम करने के लिए एक सी ++ एन्हांसमेंट सुविधा है। इसलिए, मैक्रो और इनलाइन फ़ंक्शन के बीच महत्वपूर्ण अंतर यह है कि मैक्रो को प्रीप्रोसेसर द्वारा चेक किया जाता है जबकि इनलाइन फ़ंक्शन को कंपाइलर द्वारा चेक किया जाता है।
कार्यक्रम की शुरुआत में हैश चिह्न से पहले एक मैक्रो शामिल किया जाता है। जब प्रोग्राम में मैक्रो नाम होता है, तो इसे मैक्रो की सामग्री से बदल दिया जाता है।
मैक्रो क्या है?
प्रीप्रोसेसर एक प्रोग्राम है जो कंपाइलर से गुजरने से पहले सोर्स कोड को प्रोसेस करता है।यह प्रीप्रोसेसर कमांड लाइन या निर्देशों का उपयोग करके संचालित होता है। प्रोग्राम में, प्रीप्रोसेसर निर्देशों को मुख्य प्रोग्राम से पहले सोर्स प्रोग्राम में रखा जाता है। स्रोत कोड संकलक के माध्यम से जाने से पहले, इसे प्रीप्रोसेसर द्वारा प्रीप्रोसेसर निर्देशों के लिए जांचा जाता है। प्रीप्रोसेसर निर्देशों मेंप्रतीक होता है। अन्य कथनों के विपरीत, वे अर्धविराम से समाप्त नहीं होते हैं। एक प्रकार का प्रीप्रोसेसर निर्देश मैक्रो है। आम तौर पर, मैक्रोज़ बड़े अक्षरों में लिखे जाते हैं।
चित्र 01: मैक्रो के साथ C++ प्रोग्राम
उपरोक्त प्रोग्राम के अनुसार लाइन 3 और लाइन 4 मैक्रोज़ को दर्शाता है। क्षेत्र की गणना करते समय, परिभाषित मैक्रो का उपयोग करके PI मान को प्रतिस्थापित किया जाता है। पंक्ति 14 में, आयतन=घन (मान), प्रीप्रोसेसर कथन को आयतन=(मानमानमान) के रूप में विस्तारित करता है।क्यूब ढूँढना एक फ़ंक्शन के रूप में लिखा जा सकता है, लेकिन यहां इसे मैक्रो का उपयोग करके लिखा गया है। यदि आयतन=CUBE(x+y) के रूप में कोई कथन है, तो इसका विस्तार आयतन=(x+yx+yx+y) तक हो जाएगा।
कुछ प्रोग्रामिंग टोकन आसानी से गलत टाइप किए जा सकते हैं। उन्हें मैक्रोज़ का उपयोग करके बदला जा सकता है। जैसे परिभाषित करें और &&, परिभाषित करें या ||। मैक्रो परिभाषा में define AREA 45.56 जैसे भाव भी शामिल हो सकते हैं।
इनलाइन फ़ंक्शन क्या है?
जब किसी फंक्शन को कॉल किया जाता है, तो कंपाइलर को इसे निष्पादित करने में कुछ समय लगता है। यदि फ़ंक्शन बहुत जटिल नहीं है, तो प्रोग्रामर फ़ंक्शन को इनलाइन फ़ंक्शन में बदल सकता है। नीचे दिए गए कार्यक्रम का संदर्भ लें।
चित्र 02: इनलाइन के बिना कार्य
प्रिंट_हैलो एक साधारण कार्य है। जब फ़ंक्शन को कॉल किया जाता है तो यह स्ट्रिंग "हैलो" प्रिंट करता है। उस फ़ंक्शन का निष्पादन समय 0.187s है। निम्न प्रकार से इनलाइन कीवर्ड का उपयोग करते समय, निष्पादन समय घटकर 0.064 हो जाता है।
चित्र 03: इनलाइन फ़ंक्शन
इसलिए, इनलाइन कीवर्ड का उपयोग करने से निष्पादन समय कम हो जाता है। यदि लूप हैं, स्विच स्टेटमेंट हैं और फ़ंक्शन में स्थिर चर या पुनरावर्ती फ़ंक्शन हैं, तो इनलाइन फ़ंक्शन काम नहीं कर सकते हैं।
मैक्रो और इनलाइन फंक्शन में क्या अंतर है?
मैक्रो बनाम इनलाइन फंक्शन |
|
एक मैक्रो कोड का एक टुकड़ा है, जो एक प्रीप्रोसेसर निर्देश है जो हैश साइन से पहले प्रोग्राम की शुरुआत में शामिल होता है। | एक इनलाइन फ़ंक्शन एक प्रोग्राम के निष्पादन समय को कम करने के लिए एक C++ एन्हांसमेंट फीचर है। |
मूल्यांकन का समय | |
मैक्रो में, तर्क का मूल्यांकन हर बार प्रोग्राम में उपयोग किए जाने पर किया जाता है। | इनलाइन में, तर्क का मूल्यांकन एक बार किया जाता है। |
द्वारा चेक किया गया | |
एक मैक्रो को प्रीप्रोसेसर द्वारा चेक किया जाता है। | कंपाइलर द्वारा एक इनलाइन फ़ंक्शन की जाँच की जाती है। |
कीवर्ड | |
मार्को define का उपयोग करता है। | इनलाइन फ़ंक्शन 'इनलाइन' कीवर्ड का उपयोग करता है। |
उपयोग | |
मैक्रो का उपयोग स्थिरांक, भावों को परिभाषित करने के लिए, शाब्दिक पाठ प्रतिस्थापन के लिए और कार्यों आदि को परिभाषित करने के लिए किया जा सकता है। | कार्यक्रम के निष्पादन समय को कम करने के लिए एक इनलाइन फ़ंक्शन का उपयोग किया जा सकता है। |
समाप्ति | |
मैक्रो नई लाइन के साथ समाप्त होता है। | इनलाइन फ़ंक्शन के अंत में घुंघराले ब्रेस के साथ इनलाइन फ़ंक्शन समाप्त होता है। |
परिभाषित बिंदु | |
कार्यक्रम की शुरुआत में एक मार्को परिभाषित किया गया है। | एक इनलाइन फ़ंक्शन कक्षा के अंदर या बाहर हो सकता है। |
सारांश - मैक्रो बनाम इनलाइन फ़ंक्शन
इस लेख में मैक्रो और इनलाइन फ़ंक्शन के बीच अंतर पर चर्चा की गई है। इन अवधारणाओं का उपयोग C++ प्रोग्रामिंग में किया जाता है। मैक्रो और इनलाइन फ़ंक्शन के बीच अंतर यह है कि मैक्रो को प्रीप्रोसेसर द्वारा चेक किया जाता है जबकि इनलाइन फ़ंक्शन को कंपाइलर द्वारा चेक किया जाता है।