【C/C++】C4010「単一行コメント(//)に行連結文字があります」の対処法

C/C++で書いたプログラムをコンパイルすると、「単一行コメント(//)に行連結文字があります」という警告が表示されることがあります。

それとともに見覚えのないエラーが発生してコンパイルに通らないということもあるでしょう。

ここではC4010「単一行コメント(//)に行連結文字があります」の原因と対処法を見ていきましょう。

目次から探す

C4010「単一行コメント(//)に行連結文字があります」が発生する原因と解決方法

この警告は単一行コメントの末尾にエスケープシーケンス(\)があるのが原因です。

int main() {
    // Comment \
    int a = 3;

単一行コメントの末尾にエスケープシーケンスを置いてしまうと次の行もコメントと認識されてしまうため、警告が表示されるようになっています。

例えば先ほど紹介したサンプルコードだと、「int a = 3;」がコメントとして扱われるため、変数aが定義されません。

そのため、この状態で変数aにアクセスしようとするとコンパイルエラーになります。

int main() {
    // Comment \
    int a = 3;
    //↑コメントとして処理されるため、定義されない
    int c = a * 2; //エラー
}

この問題は単一行コメントの末尾にエスケープシーケンスを置かないようにするか、コメントを全て複数行コメントにすることで解決できます。

int main() {
    // Comment
    int a = 3;
    /* Comment */
    int c = a * 2; //エラーにならない
}

複数行コメントの記述方法でも1行で済ませることが可能ですので、覚えておくといいですね。

コンパイルエラーや警告があまり出ないようなプログラムを書けるようなると、警告への対処などで無駄な時間を使うことが減りまますので頑張りましょう。

目次から探す