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

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

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

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

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

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

 
/nt 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行で済ませることが可能ですので、覚えておくといいですね。

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

現場ですぐに使える! C/C++逆引き大全 560の極意

C/C++の関数の使い方はわかるけど、どういう場面で使うのかいまいちわからない...
そういう方に相性抜群の逆引きリファレンス。
まさか、逆引き系を一冊も持っていないというもったいないことはしていませんよね?
リファレンスブックを持っていない方は要チェック。

コメント

タイトルとURLをコピーしました