इनलाइन और मैक्रो के बीच अंतर

Anonim

इनलाइन बनाम मैक्रो

C ++ बहुत दूर हो गया है। एक शक्तिशाली भाषा होने के नाते, कभी-कभी कार्यक्रमों की विशाल लाइब्रेरी के कारण प्रोग्रामर को थोड़ा-सा भ्रमित हो जाता है इनलाइन फ़ंक्शन उन में से एक है जो भाषा में आसानी से मैक्रोज़ के साथ भ्रमित हो सकता है।

यह नहीं है कि दोनों के बीच एक मामूली अंतर है, लेकिन उनके गुणों की वजह से वे भ्रामक हो सकते हैं। इस लेख में, हम सी ++ में इनलाइन फ़ंक्शन और मैक्रोज के बीच के अंतर के बारे में अधिक चर्चा करेंगे।

इनलाइन

एक इनलाइन फ़ंक्शन सी ++ में किसी अन्य फ़ंक्शन की तरह है और इसे नियमित रूप से भी कहा जाता है। यह कार्य करता है यह है कि यह संकलित फ़ंक्शन परिभाषा की एक प्रति बनाता है। यही है, यह संकलित करने के लिए निर्धारित वस्तुओं की एक प्रति बनाता है। यदि हम किसी भी दो पूर्णांक जोड़ते हैं और इसे इनलाइन फ़ंक्शन कहते हैं तो एक उदाहरण लिया जा सकता है, संकलक संकलित करने के लिए पूर्णांक की एक प्रति बना देगा।

उदाहरण:

इनलाइन इन्टी राशि (इंट एक्स, इंट y)

{

रिटर्न (एक्स + वाई);

}

मैक्रो

मैक्रो एक प्रोग्राम लाइन में टेक्स्ट प्रतिस्थापन को लागू करने में सी ++। यही है, वे समारोह में परिभाषित परिवर्तन के अनुसार पाठ की जगह। फ़ंक्शन के रूप में इनलाइन के विपरीत, एक मैक्रो फ़ंक्शन के उपयोग से कोड को जोड़ता है। उदाहरण के लिए:

# डुबेले (एक्स) एक्स * एक्स < इंट y = 5 परिभाषित करें;

इंट जे = डबल (++ वाई);

यहां, हम 30 के रूप में मूल्य प्राप्त करेंगे! चूंकि कॉलिंग मैक्रो के माध्यम से किया गया है, "X" को ++ y से बदल दिया गया है जो ++ y को और ++ y से गुणा किया जाता है। यह कुल 5 * 6 बनाता है जो 30 नहीं है 6. छह बुनियादी होंगे लेकिन गलत जवाब होगा।

-3 ->

अब, मैक्रो शायद एक बग पैदा हो सकता है तो एक इनलाइन फ़ंक्शन संकलक के स्मृति में मूल्यों की प्रतिलिपि करके बचाव के लिए आता है और फिर इसे संकलित कर रहा है

सारांश:

1 एक इनलाइन फ़ंक्शन फ़ंक्शन परिभाषा की एक प्रति बनाता है।

2। एक मैक्रो फ़ंक्शन के भीतर पहचाने जाने और परिभाषित किए गए पाठ को बदल देता है।

3। एक इनलाइन फ़ंक्शन भी तब लागू किया जाता है जब मैक्रो को कार्यक्रम में एक बग का कारण माना जाता है।