次の方法で共有


コンパイラの警告 (レベル 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;
}