2013-05-04 3 views
12

मेरे पास कुछ सी ++ कोड है, और यदि __APPLE__ या __linux मैक्रोज़ परिभाषित किए गए हैं तो कोई कार्रवाई करना चाहते हैं।मैं कैसे जांचूं कि एकाधिक मैक्रोज़ में से एक को #ifdef में परिभाषित किया गया है या नहीं?

अगर मैं एक सामान्य if सशर्त के रूप में यह किया था, यह || का उपयोग कर आसान होगा:

if (something || something) { .. code .. } 

लेकिन मैं जानता हूँ के रूप में वहाँ #ifdef बयान के लिए कोई || ऑपरेटर है। मैं कैसे जांच करूं कि __APPLE__ या __linux को एक #ifdef कथन का उपयोग करके परिभाषित किया गया है?

+0

ठीक है, अगर "ओएस एक्स/आईओएस और लिनक्स पर उपलब्ध" सोच रहा है, तो क्या आप इसके बजाय POSIX-availablity की जांच नहीं करना चाहते हैं? –

+0

@ एच 2CO3 अच्छा विचार। – beakr

उत्तर

22

आप एक #ifdef में नहीं कर सकते हैं इसके बजाय एक #if होगा?

#if defined(__APPLE__) || defined(__linux) 

यह भी अगर आप

#if defined __APPLE__ || defined __linux 
2

पसंद करते हैं मेरी सी में काम करता है ++ है।

#if defined(__APPLE__) || defined(__linux) 
    // ... 
#endif 
संबंधित मुद्दे

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