如何在//注释中转义反斜杠

时间:2015-05-17 11:12:36

标签: c++ escaping comments c-preprocessor clang++

我的评论以反斜杠结尾。像

这样的东西
...

// use \

..

Clang(++)警告我,这是多行评论

warning: multi-line // comment [-Wcomment]
    // use \
           ^

所以我尝试在最后添加一些空格,但没有帮助。我可以以某种方式逃避反斜杠吗?

4 个答案:

答案 0 :(得分:5)

虽然这不是一个技术解决方案,但我会将其作为一个提示来写一个更好的评论:

// use \ (backslash) instead of the normal slash here, because ...

答案 1 :(得分:3)

问题的基础是线路延续的定义。

当行以backslash-newline组合或<backslash><whitespace><newline>组合结束时,编译器会将下一行文本追加到当前文本行。这可以用宏来证明:

#define ME {\
cout << "me\n" \
}

以上将被视为单行:

#define ME {cout << "me\n"}

编译器抱怨,因为你的&#34; //&#34;评论延伸到下一行,因为&#39; \&#39;延续性格。

<强>解决方案:
将其他字符放在&#39; \&#39;。
之后 示例:

  '\'
  \ ending character

答案 2 :(得分:1)

你可以使用Grave Accent(`)

#include<iostream>

using namespace std;

int main()
{

    // print `\`
    cout << "DONE" << endl;

    return 0;
}

答案 3 :(得分:0)

也许你有这样的代码:

#define foo {int x = 123; \
cout << x << endl; \
}

你要评论它:

//#define foo {int x = 123; \
//cout << x << endl; \
//}

上面的代码应该可以正常工作。另一方面,如果你写:

#define foo {int x = 123; \
cout << x << endl; \
} \

然后foo可以工作(如果下一行是空的)但是如果你注释掉它会遇到麻烦。只需删除最后一个斜杠。否则不要用反斜杠结束该行,除非它意味着连接......