सी ++ मधील इनलाइन आणि मॅक्रो दरम्यान फरक
सामग्री
मॅक्रो ही एक सूचना आहे जी त्याच्या विनंतीच्या वेळी विस्तृत होते. फंक्शन्सची व्याख्या मॅक्रो प्रमाणेच केली जाऊ शकते. त्याचप्रमाणे इनलाइन करण्याच्या वेळीही इनलाइन फंक्शन्सचा विस्तार होतो. इनलाइन आणि मॅक्रो फंक्शनमधील एक प्राथमिक फरक म्हणजे तो इनलाइन कार्ये दरम्यान वाढविले जातात संकलन, आणि ते मॅक्रो प्रोग्रामद्वारे प्रक्रिया केली जाते तेव्हा विस्तृत केली जाते प्रीप्रोसेसर.
तुलना चार्टच्या मदतीने इनलाइन आणि मॅक्रोमधील फरक अभ्यासूया.
- तुलना चार्ट
- व्याख्या
- मुख्य फरक
- निष्कर्ष
तुलना चार्ट
तुलनासाठी आधार | इनलाइन | मॅक्रो |
---|---|---|
मूलभूत | कंपाइलरद्वारे इनलाइन कार्ये विश्लेषित केली जातात. | प्रीक्रोसेसरद्वारे मॅक्रोचा विस्तार केला जातो. |
मांडणी | इनलाइन रिटर्न_प्रकारे फंक्ट_नाव (मापदंड) {. . . } | # परिभाषित मॅक्रो_नाव चार_सक्वेन्स |
कीवर्ड वापरले | इनलाइन | #परिभाषित |
परिभाषित | हे वर्गात किंवा बाहेर परिभाषित केले जाऊ शकते. | प्रोग्रामच्या सुरूवातीस हे नेहमी परिभाषित केले जाते. |
मूल्यांकन | हे फक्त एकदाच युक्तिवादाचे मूल्यांकन करते. | प्रत्येक वेळी कोडमध्ये वापरल्या जाणार्या युक्तिवादाचे ते मूल्यांकन करते. |
विस्तार | कंपाईलर सर्व कार्ये इनलाइन आणि विस्तृत करू शकत नाही. | मॅक्रो नेहमी वाढविले जातात. |
ऑटोमेशन | वर्गात परिभाषित केलेली छोटी फंक्शन्स आपोआप इनलाइन फंक्शन्सवर बनविली जातात. | मॅक्रोची व्याख्या विशिष्टपणे केली पाहिजे. |
प्रवेश करत आहे | इनलाइन मेंबर फंक्शन वर्गाच्या डेटा सदस्यांमध्ये प्रवेश करू शकतो. | मॅक्रो कधीही वर्गाचे सदस्य असू शकत नाहीत आणि वर्गाच्या डेटा सदस्यांपर्यंत प्रवेश करू शकत नाहीत. |
समाप्ती | इनलाइन फंक्शनची व्याख्या इनलाइन फंक्शनच्या शेवटी कर्ली कंस सह समाप्त होते. | नवीन ओळीने मॅक्रो व्याख्या समाप्त होते. |
डीबगिंग | इनलाइन फंक्शनसाठी डीबग करणे सोपे आहे कारण संकलनाच्या वेळी त्रुटी तपासणी केली जाते. | संकलन करताना त्रुटी तपासणी होत नसल्यामुळे मॅक्रोसाठी डीबग करणे कठीण होते. |
बंधनकारक | इनलाइन फंक्शन फंक्शनच्या मुख्य भागामध्ये सर्व स्टेटमेन्टस बांधून ठेवते तसेच फंक्शनच्या मुख्य भागास कर्ली कंस सह समाप्त होते. | मॅक्रोकडे एकापेक्षा जास्त विधान असल्यास बंधनकारक समस्येचा सामना करावा लागतो, कारण त्यात समाप्ती चिन्ह नाही. |
इनलाइन व्याख्या
इनलाइन फंक्शन नियमित फंक्शनसारखे दिसते परंतु त्यापूर्वी कीवर्ड “इनलाइन“. इनलाइन कार्ये म्हणजे लहान लांबीची कार्ये ज्याला बोलावण्याऐवजी त्याच्या विनंतीच्या वेळी वाढवले जाते. चला उदाहरणासह इनलाइन कार्ये समजून घेऊया.
# समाविष्ट करा वरील प्रोग्राममध्ये मी "उदाहरण" क्लास मधील इनलाइन फंक्शन म्हणून फंक्शन इनिशियलाइज () इनिशियलाइज आणि परिभाषित केले. इनिशिएलायझेशन () फंक्शनचा कोड जेथे "उदाहरण" च्या ऑब्जेक्टद्वारे प्रक्षेपित केला जाईल तिथे विस्तारेल. वर्ग उदाहरणात परिभाषित केलेले फंक्शन डिस्प्ले () इनलाइन घोषित केले जात नाही परंतु कंपाईलरद्वारे ते इनलाइन मानले जाऊ शकते, सी ++ मध्ये फंक्शनची लांबी विचारात घेऊन वर्गाच्या आत परिभाषित केलेले फंक्शन आपोआप इनलाइन बनवले जातात. मॅक्रो एक “प्रीप्रोसेसर डायरेक्टिव्ह” आहे. संकलन करण्यापूर्वी, प्रोग्रामची तपासणी प्रीप्रोसेसरद्वारे केली जाते आणि जिथे प्रोग्राममध्ये मॅक्रो आढळतो तो त्या मॅक्रोला त्याच्या परिभाषाने बदलवितो. म्हणूनच, मॅक्रोला "रिप्लेसमेंट" म्हणून मानले जाते. चला उदाहरणासह मॅक्रोचा अभ्यास करूया. # समाविष्ट करा वरील कोडमध्ये, मी मॅक्रो फंक्शन ग्रेटर () घोषित केले, जे दोन्ही पॅरामीटर्सची तुलना आणि जास्त संख्या शोधते. आपण हे पाहू शकता की मॅक्रो समाप्त करण्यासाठी अर्धविराम नाही कारण केवळ नवीन ओळीद्वारे मॅक्रो संपुष्टात आला आहे. मॅक्रो ही केवळ एक पुनर्स्थापनेची जागा आहे, परंतु जेथे तो आवाहन केला जाईल तिथे तो मॅक्रो कोडचा विस्तार करेल. इनलाइन कार्ये मॅक्रो फंक्शनपेक्षा अधिक विश्वासार्ह आहेत. सी ++ कॉन्स्टेंटची व्याख्या करण्यासाठी एक चांगला मार्ग देखील प्रदान करते, जो “कॉन्स्ट” कीवर्ड वापरतो.
मॅक्रो व्याख्या
निष्कर्ष: