मैं के बारे में __noop पढ़ रहा था और MSDN उदाहरणक्यों और कब __noop का उपयोग करें?
#if DEBUG
#define PRINT printf_s
#else
#define PRINT __noop
#endif
int main() {
PRINT("\nhello\n");
}
है और मैं सिर्फ एक खाली मैक्रो होने से अधिक लाभ नहीं दिख रहा है:
#define PRINT
उत्पन्न कोड एक ही है। __noop
का उपयोग करने का एक वैध उदाहरण क्या है जो वास्तव में उपयोगी बनाता है?
मुझे लगता है कि ऐसी स्थितियां हैं जहां "कोई कथन नहीं" बदलता है कि चीजें कैसे काम करती हैं। पूरी तरह से यकीन नहीं है कि मैं अभी एक के बारे में सोच सकता हूं। –
बीटीडब्ल्यू, उनका उदाहरण थोड़ी डोडी है क्योंकि यह डिबग और रिलीज मोड में एक अलग प्रकार के साथ अभिव्यक्ति में परिणाम देता है। लेकिन यह डीबग मोड में टाइप के रूप में उतना ही नहीं है जितना कि 'प्रिंटर' के लिए "तर्क" थे! वैराडिक मैक्रोज़ बेहतर व्यवहार वाली परिभाषा '# परिभाषित करें प्रिंट करें (...) ((शून्य) printf_s (__ VA_ARGS __))' और '# प्रिंट करें (...) ((शून्य) 0) ', और यह आपको रोकता है 'प्रिंट' के साथ एक फ़ंक्शन पॉइंटर लेने का प्रयास कर रहा है। –