Поделиться через


Предупреждение компилятора (уровень 1) C4067

непредвиденные маркеры после директивы препроцессора — ожидается новая строка

Замечания

Компилятор обнаружил и проигнорировал дополнительные символы после директивы препроцессора. Это может быть вызвано любым неожиданным символом, хотя распространенная причина является запятой запятой после директивы. Примечания не вызывают этого предупреждения. Параметр компилятора /Za включает это предупреждение для дополнительных директив препроцессора, чем параметр по умолчанию.

Пример

// C4067a.cpp
// compile with: cl /EHsc /DX /W1 /Za C4067a.cpp
#include <iostream>
#include <string> s     // C4067
#if defined(X);         // C4067
std::string s{"X is defined"};
#else
std::string s{"X is not defined"};
#endif;                 // C4067 only under /Za
int main()
{
    std::cout << s << std::endl;
}

Чтобы устранить это предупреждение, удалите странные символы или переместите их в блок комментариев. Некоторые предупреждения C4067 могут быть отключены, удалив параметр компилятора /Za .

// C4067b.cpp
// compile with: cl /EHsc /DX /W1 C4067b.cpp
#include <iostream>
#include <string>
#if defined(X)
std::string s{"X is defined"};
#else
std::string s{"X is not defined"};
#endif
int main()
{
    std::cout << s << std::endl;
}