सी में परिवर्तनीय पैरामीटर वाले मैक्रोज़
वैकल्पिक पैरामीटर उन पैरामीटर को निर्दिष्ट करने का एक सुविधाजनक तरीका प्रदान करते हैं जिनमें डिफ़ॉल्ट मान होते हैं, जो फ़ंक्शन कॉल को लचीलापन प्रदान करते हैं। जबकि C मूल रूप से मैक्रोज़ में वैकल्पिक मापदंडों का समर्थन नहीं करता है, ऐसी तकनीकें हैं जो इस व्यवहार का अनुकरण कर सकती हैं।
एक दृष्टिकोण में पुनरावर्ती मैक्रो पैटर्न का उपयोग करना शामिल है। चलिए एक उदाहरण लेते हैं:
#define PRINT_STRING(message, ...) PRINT_STRING_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__) #define PRINT_STRING_1_ARGS(message) PrintString(message, 0, 0) #define PRINT_STRING_2_ARGS(message, size) PrintString(message, size, 0) #define PRINT_STRING_3_ARGS(message, size, style) PrintString(message, size, style)
PRINT_STRING मैक्रो तर्कों की एक परिवर्तनीय संख्या लेता है। मैक्रो PRINT_STRING_MACRO_CHOOSER दो बार तर्कों की सूची का उपयोग करता है: एक बार तर्कों की संख्या के आधार पर सही सहायक मैक्रो (PRINT_STRING_1_ARGS, PRINT_STRING_2_ARGS, या PRINT_STRING_3_ARGS) निर्धारित करने के लिए, और फिर चयनित सहायक मैक्रो को तर्क पास करने के लिए।
इसका उपयोग कैसे करें:
PRINT_STRING("Hello, World!"); // Defaults to no size or style PRINT_STRING("Hello, World!", 18); // Specifies only size PRINT_STRING("Hello, World!", 18, bold); // Specifies both size and style
यह दृष्टिकोण मैक्रोज़ में वैकल्पिक पैरामीटर प्रदान करता है, जिससे कॉल करने वाले को केवल वे पैरामीटर निर्दिष्ट करने की अनुमति मिलती है जिनकी उन्हें आवश्यकता होती है। हालाँकि, इसके लिए एकाधिक सहायक मैक्रोज़ को परिभाषित करने की आवश्यकता होती है, जो बड़ी संख्या में वैकल्पिक मापदंडों के लिए वर्बोज़ बन सकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3