2011-09-19 17 views
18

VxWorks6.8 C++ derleyicisini kullanarak oldukça büyük bir proje derliyorum. Aşağıdaki uyarısınıuyarı: #endif yönergesi sonunda ek belirtiler

uyarı alıyorum: ekstra belirteçleri #endif direktifi

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

Bunları uyarıların oldukça fazla alıyorum sonunda.

  1. Neden ben bu uyarıları ve bakış C++ standart noktadan alıyorum?
  2. Derleyicinin bunun için uyarmasının nedeni nedir?
  3. Bunu düzeltmenin en iyi yolu nedir?

Teşekkür

cevap

32

olmalıdır:

#endif // USE_IOSTREAM 
#endif // WIN32 

endif

herhangi bir bağımsız değişken almaz. Böyle yorumlar sadece okunabilirlik

DÜZENLEME için yerleştirilir:

ve #endif sonra herhangi tanımlayıcı gerek yoktur sonuna

+0

pls, bu uyarıcıyı derleyen iyi bir neden için ne tür elokor yapabiliriz? Teşekkürler – venkysmarty

+10

zaten yaptı .... –

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

de #endif // _OM_NO_IOSTREAM kapanış özledim. Bu uyarıları bastırmanın yolu onları kaldırmaktır.

11

(Ve OM_NO_IOSTREAM için bir #endif eksik).

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

+1. Şimdiye kadar sadece doğru cevap. – Nawaz