2010-02-20 16 views
15

क्या मैक्रोज़ में संख्यात्मक समानता की जांच करने का कोई तरीका है?सी मैक्रो: #if समानता के लिए जांच

मैं इस तरह बातों के लिए समर्थन

#define choice 3 

#if choice == 3 
    .... 
#endif 

#if choice == 4 
... 
#endif 

करता सी मैक्रो की तरह कुछ करना चाहते हैं?

+8

आपके कंपाइलर ने आपको क्या बताया? – Christoph

+1

बेहतर अभी तक, पाठ्यपुस्तक/संदर्भ पुस्तक क्या कहती है? –

उत्तर

20

वास्तव में यह काम करना चाहिए। http://gcc.gnu.org/onlinedocs/cpp/If.html#If

वह संदर्भ सटीक है, लेकिन "मानकों प्रारूप" में लिखा गया है: उदाहरण के बिना  ।

3

जहां तक ​​मुझे पता है कि काम करना चाहिए। आप किस कंपाइलर का उपयोग कर रहे हैं?

पीएस: बस जानकारी के लिए, परिभाषित नाम आम तौर पर कैप्स में लिखे जाते हैं!

#if choice == 3 
    ... 
#elif choice == 4 
    ... 
#else 
    #error Unsupported choice setting 
#endif 

ध्यान दें कि यदि choice#defined नहीं है, पूर्वप्रक्रमक मूल्य 0 होने के रूप में व्यवहार करता है:

#define CHOICE 3

18

एक और तरीका है अपने कोड लिखने के लिए #elif निर्देशों श्रृंखलित उपयोग करता है।

संबंधित मुद्दे