Подтвердить что ты не робот

Предупреждение: дополнительные токены в конце директивы #endif

Я компилирую довольно большой проект с использованием компилятора VxWorks6.8 С++. Я получаю следующее предупреждение

предупреждение: дополнительные токены в конце директивы #endif

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

Я получаю довольно много этих предупреждений.

  • Почему я получаю эти предупреждения и от стандартной точки С++ Посмотреть?
  • Какая причина, по которой компилятор предупреждает об этом?
  • Каков наилучший способ исправить это?

Спасибо

4b9b3361

Ответ 1

должен быть:

#endif // USE_IOSTREAM
#endif // WIN32

endif не принимает никаких аргументов. Такие комментарии размещаются только для удобства чтения

EDIT:

и вы пропустите закрытие #endif // _OM_NO_IOSTREAM в конце

Ответ 2

Поскольку после #endif

у вас ничего не получится,

Кроме того, вам не хватает endif.

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

Ответ 3

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

Нет необходимости в идентификаторе после #endif. Способ устранения этих предупреждений - удалить их.