我有一条以反斜杠结尾的评论。 就像是

...

// use \

..

Clang(++)警告我,这是多行注释

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

因此,我尝试在末尾添加一些空格,但没有帮助。 我可以以某种方式逃脱反斜线吗?

===============>>#1 票数:5

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

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

===============>>#2 票数:3 已采纳

问题的基础是行延续的定义。

当一行以backslash-newline组合或<backslash><whitespace><newline>组合<backslash><whitespace><newline> ,编译器会将文本的下一行附加到当前文本行。 这可以通过宏进行演示:

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

上面将被视为单行:

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

编译器抱怨是因为您的“ //”注释由于连续字符“ \\”而扩展到下一行。

解:
将其他字符放在“ \\”之后。
例子:

  '\'
  \ ending character

===============>>#3 票数:1

您可以使用Grave Accent(`)

#include<iostream>

using namespace std;

int main()
{

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

    return 0;
}

===============>>#4 票数: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可能会起作用(如果下一行为空),但是如果您将其注释掉,则会遇到麻烦。 只需删除最后一个反斜杠即可。 否则不要以反斜杠结尾,除非是要连接...

  ask by Matěj Pokorný translate from so

未解决问题?本站智能推荐: