इस पोस्ट में, हम C++ में इनलाइन और मैक्रो के बीच के अंतर को समझेंगे।
इनलाइन
-
यह C++ में एक फंक्शन है।
-
इसे कंपाइलर द्वारा पार्स किया जाता है।
-
इसे कक्षा के अंदर या बाहर परिभाषित किया जा सकता है।
-
यह केवल एक बार तर्क का मूल्यांकन करता है।
-
संकलक सभी कार्यों को 'इनलाइन' फ़ंक्शन में परिवर्तित नहीं कर सकता है और उन सभी का विस्तार नहीं कर सकता है।
-
कक्षा के अंदर परिभाषित छोटे कार्यों को स्वचालित रूप से इनलाइन कार्यों के रूप में बनाया जाता है।
-
कक्षा के अंदर एक इनलाइन फ़ंक्शन कक्षा के डेटा सदस्यों तक पहुंच सकता है।
-
इनलाइन फ़ंक्शन को घुंघराले कोष्ठक का उपयोग करके समाप्त किया जा सकता है।
-
डीबग करना आसान है।
-
ऐसा इसलिए है क्योंकि संकलन के दौरान त्रुटि जाँच की जाती है।
-
यह फ़ंक्शन के मुख्य भाग में सभी कथनों को बांधता है।
उदाहरण
inline return_type funct_name ( parameters ) { . . . }
मैक्रो
-
इसे प्रीप्रोसेसर द्वारा विस्तारित किया जाता है।
-
इसे कार्यक्रम की शुरुआत में परिभाषित किया गया है।
-
यह हर बार कोड के अंदर उपयोग किए जाने वाले तर्क का मूल्यांकन करता है।
-
उन्हें हमेशा विस्तारित/विस्तारित करने की आवश्यकता होती है।
-
उन्हें विशेष रूप से परिभाषित करने की आवश्यकता है।
-
वे कभी भी कक्षा के सदस्य नहीं बनेंगे।
-
वे कक्षा के डेटा सदस्यों तक नहीं पहुंच सकते।
-
मैक्रो की परिभाषा नई लाइन के साथ समाप्त होती है।
-
मैक्रोज़ को डीबग करना मुश्किल है क्योंकि संकलन समय के दौरान त्रुटि जाँच नहीं होती है।
-
यदि इसमें एक से अधिक कथन शामिल हैं, तो यह बाध्यकारी समस्या का सामना करता है क्योंकि इसमें समाप्ति का प्रतीक नहीं है।
उदाहरण
#define macro_name char_sequence