Compartilhar via


Aviso do compilador (nível 1) C4067

tokens inesperados após diretiva de pré-processador – uma nova linha era esperada

Comentários

O compilador encontrou e ignorou caracteres extras seguindo uma diretiva de pré-processador. Isso pode ser causado por qualquer caractere inesperado, embora uma causa comum seja um ponto e vírgula perdido após a diretiva. Os comentários não causam este aviso. A opção do compilador /Za habilita esse aviso para mais diretivas de pré-processador do que a configuração padrão.

Exemplo

// 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;
}

Para resolver esse aviso, exclua os caracteres perdidos ou mova-os para um bloco de comentários. Determinados avisos C4067 podem ser desabilitados removendo a opção do compilador /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;
}