警告:#endif指令结尾的额外令牌

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (67)

我正在使用VxWorks6.8 C ++编译器编译一个相当大的项目。我接到警告

警告:#endif指令结尾的额外令牌

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

我收到了很多这些警告。

  1. 为什么我从C ++标准的角度来看这些警告?
  2. 编译器为此发出警告的好原因是什么?
  3. 解决这个问题的最好方法是什么?

谢谢

提问于
用户回答回答于

应该:

#endif // USE_IOSTREAM
#endif // WIN32

endif没有任何争论。这些评论仅出于可读性考虑

并且你错过了最后#endif // _OM_NO_IOSTREAM的结局

用户回答回答于

因为你以后什么都没有 #endif

另外,你错过了一个endif。

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

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问6 回答
  • 无聊至极

    4 粉丝504 提问6 回答
  • 骑牛看晨曦

    5 粉丝522 提问5 回答
  • Richel

    8 粉丝0 提问4 回答

扫码关注云+社区

领取腾讯云代金券