2011-09-19 11 views
18

के अंत में अतिरिक्त टोकन मैं VxWorks6.8 C++ कंपाइलर का उपयोग करके एक बहुत बड़ी परियोजना संकलित कर रहा हूं। #endif निर्देशचेतावनी: #endif निर्देश

#ifndef _OM_NO_IOSTREAM 
#ifdef WIN32 
#ifndef USE_IOSTREAM 
#define USE_IOSTREAM 
#endif USE_IOSTREAM 
#endif WIN32 

मैं एक काफी इन चेतावनियों का एक बहुत हो रही है के अंत में अतिरिक्त टोकन: मैं निम्न चेतावनी हो रही है

चेतावनी।

  1. मैं इन चेतावनियों और सी ++ देखने के मानक बिंदु से क्यों मिल रहा है?
  2. इस कारण के लिए संकलक चेतावनी क्यों दे रहा है इसका अच्छा कारण क्या है?
  3. इसे ठीक करने का सबसे अच्छा तरीका क्या है?

धन्यवाद

उत्तर

32

होना चाहिए:

#endif // USE_IOSTREAM 
#endif // WIN32 

endif किसी भी तर्क नहीं लेता है। इस तरह की टिप्पणी केवल पठनीयता

संपादित करें के लिए रखा जाता है:

और आप अंत

+0

क्या आप इस चेतावनी को फेंकने वाले अच्छे कारण के लिए elobrate pls कर सकते हैं? धन्यवाद – venkysmarty

+10

पहले से ही किया .... –

0
#endif USE_IOSTREAM 
#endif WIN32 
    // ^^^^^^^^^^^^ Compiler is warning about these extra tokens after endif directive. 

पर #endif // _OM_NO_IOSTREAM बंद करने से चूक जाएं #endif के बाद किसी भी पहचानकर्ता के कोई जरूरत नहीं है। उन चेतावनियों को दबाने का तरीका उन्हें हटाना है।

11

क्योंकि आप कुछ भी करने के बाद #endif

इसके अलावा, आप एक endif भूल रहे हैं नहीं हो सकता।

#ifndef _OM_NO_IOSTREAM 
    #ifdef WIN32 
    #ifndef USE_IOSTREAM 
     #define USE_IOSTREAM 
    #endif 
    #endif 
#endif 
+0

+1। अभी तक केवल सही जवाब है। – Nawaz

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