मैं कोड का एक टुकड़ा जो मैं शामिल करने के लिए करता है, तो दो मैक्रो की या तोमैक्रो
#ifdef MACRO1 || MACRO2
void foo()
{
}
#endif
मैं सी में यह पूरा करते कैसे परिभाषित कर रहे हैं चाहते हैं के साथ तार्किक ऑपरेटर का उपयोग करना?
मैं कोड का एक टुकड़ा जो मैं शामिल करने के लिए करता है, तो दो मैक्रो की या तोमैक्रो
#ifdef MACRO1 || MACRO2
void foo()
{
}
#endif
मैं सी में यह पूरा करते कैसे परिभाषित कर रहे हैं चाहते हैं के साथ तार्किक ऑपरेटर का उपयोग करना?
#ifdef
इसके अलावा, पूर्वप्रक्रमक अधिक सामान्य #if
अनुदेश का समर्थन करता है; वास्तव में, #ifdef MACRO
#if defined(MACRO)
के लिए एक शॉर्टकट है, जहां defined
एक "प्रीप्रोसेसर फ़ंक्शन" है जो मैक्रो परिभाषित होने पर 1 लौटाता है; हां, तो आप कर सकते हैं:
#if defined(MACRO1) || defined(MACRO2)
void foo()
{
}
#endif
#if defined(Macro 1) + defined(Macro 2) == 1
<Code>
#endif
यहाँ नहीं संस्करण अगर जरूरत: [! और एक मिनी डेमो]
#if !defined(MACRO1) && !defined(MACRO2)
...
#endif
क्या है नीचे कोड में मुद्दा? इस तरह के उपयोग गलत होने पर वैकल्पिक विकल्प क्या है? # परिभाषित करें CUSTOM_METHOD 1 # परिभाषित करें ARDUINO_METHOD 2 # परिभाषित करें TIMER_DELAY_METHOD CUSTOM_METHOD #if परिभाषित (TIMER_DELAY_METHOD! = CUSTOM_METHOD) || परिभाषित (TIMER_DELAY_METHOD! = ARDUINO_METHOD) #Error "कोई टाइमर विधि परिभाषित किया गया है" #endif // परिभाषित – Rajesh
मुझे लगता है कि मैं समझ गया और निम्नलिखित कोड काम करने #define CUSTOM_METHOD 1 #define ARDUINO_METHOD 2 #define कोई नहीं लगता है 3 # परिभाषित करें TIMER_DELAY_METHOD कोई नहीं #if (TIMER_DELAY_METHOD! = CUSTOM_METHOD) && (TIMER_DELAY_METHOD! = ARDUINO_METHOD) #error "कोई टाइमर विधि परिभाषित नहीं की गई है" #endif // परिभाषित – Rajesh