Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 1) C4067

neočekávané tokeny následující direktivy preprocesoru – očekává se nový řádek

Poznámky

Kompilátor našel a ignoroval nadbytečné znaky za direktivou preprocesoru. Příčinou můžou být jakékoli neočekávané znaky, ale běžnou příčinou je po direktivě strašidelní středník. Komentáře nezpůsobí toto upozornění. Možnost /Za kompilátoru umožňuje toto upozornění pro více direktiv preprocesoru než výchozí nastavení.

Příklad

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

Pokud chcete toto upozornění vyřešit, odstraňte strašidné znaky nebo je přesuňte do bloku komentáře. Některá upozornění C4067 mohou být zakázána odebráním možnosti /Za kompilátoru.

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