Compartir vía


Advertencia del compilador (nivel 1) C4067

símbolos (token) inesperados después de la directiva del preprocesador; se esperaba una nueva línea

Comentarios

El compilador encontró y omitió caracteres adicionales después de una directiva de preprocesador. Esto puede deberse a cualquier carácter no esperado, aunque una causa común es un punto y coma aislado después de la directiva. Los comentarios no provocan esta advertencia. La opción del compilador /Za habilita esta advertencia para más directivas de preprocesador que la configuración predeterminada.

Ejemplo

// 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 esta advertencia, elimine los caracteres aislados o muévalos a un bloque de comentario. Algunas advertencias de C4067 pueden deshabilitarse si se quita la opción del 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;
}