प्रतिस्थापन केवल फ़ंक्शन-जैसे मैक्रो के लिए होता है यदि मैक्रो नाम बाएं कोष्ठक के बाद होता है।
MY_MACRO()
MY_MACRO ()
MY_MACRO
()
लेकिन यह नहीं होगा:: तो, सभी निम्नलिखित समारोह की तरह मैक्रो MY_MACRO()
आह्वान
MY_MACRO SomethingElse
यह कैसे आप मैक्रो और क्या यह के रूप में है कि क्या करने के लिए प्रयोग किया जाता है का उपयोग कर रहे पर निर्भर करता है या यह महत्वपूर्ण नहीं है। आदर्श रूप में, आपके मैक्रोज़ के सभी अलग-अलग नाम होंगे; यदि आप मैक्रोज़ के लिए सभी अपरकेस पहचानकर्ता आरक्षित करते हैं, तो इससे कोई फ़र्क नहीं पड़ता कि आप ऑब्जेक्ट-जैसे या फ़ंक्शन-जैसी मैक्रो का उपयोग शून्य पैरामीटर के साथ करते हैं या नहीं।
सौंदर्यशास्त्र से, आमतौर पर यह आमतौर पर (लेकिन हमेशा नहीं) क्लीनर नहीं होता है जो कार्यप्रवाहों की तरह नहीं है जो शून्य पैरामीटर लेते हैं।
स्रोत
2010-11-22 22:52:03
चूंकि आपने सी ++ टैग जोड़ा है मैक्रोज़ का उपयोग न करने का एक वैध उत्तर है। यदि आप प्री-प्रोसेसर के बारे में बात करना चाहते हैं तो इसे प्री-प्रोसेसर के रूप में टैग करें और सी ++ –
@ मार्टिन: प्रीप्रोसेसर एस ++ के रूप में सी ++ का हिस्सा नहीं है; एसटीएल के बारे में प्रश्नों को '[stl] 'टैग किया जाना चाहिए और' [C++]' भी नहीं? यह सच है कि मैक्रोज़ का अधिकांश समय सी ++ में उपयोग नहीं किया जाना चाहिए, लेकिन कभी-कभी वे असाधारण रूप से सहायक हो सकते हैं। –
@ जेम्स मैकनेलिस: वास्तव में, मैक्रोज़ के बिना बूस्ट पुस्तकालयों को लागू करना व्यावहारिक रूप से असंभव होगा! –