如何在 // 注释中转义反斜杠
How to escape backslash in // comment
我有一条以反斜杠结尾的评论。像
...
// use \
..
Clang(++) 警告我,这是多行注释
warning: multi-line // comment [-Wcomment]
// use \
^
所以我尝试在末尾添加一些空格,但没有帮助。我能以某种方式转义反斜杠吗?
您可以使用重音符号 (`)
#include<iostream>
using namespace std;
int main()
{
// print `\`
cout << "DONE" << endl;
return 0;
}
虽然这不是技术解决方案,但我会以此为提示写出更好的评论:
// use \ (backslash) instead of the normal slash here, because ...
也许你有这样的代码:
#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 可能会工作(如果下一行是空的)但是如果你把它注释掉你就会遇到麻烦。只需删除最后一个反斜杠。否则不要以反斜杠结束该行,除非它是为了连接...
问题的基础是续行的定义。
当一行以 backslash-newline
组合或 <backslash><whitespace><newline>
组合结束时,编译器会将下一行文本附加到当前文本行。这可以用宏来演示:
#define ME {\
cout << "me\n" \
}
以上将被视为单行:
#define ME {cout << "me\n"}
编译器报错,因为你的“//”注释因为“\”续行符而延伸到下一行。
解法:
将其他字符放在'\'之后。
示例:
'\'
\ ending character
我有一条以反斜杠结尾的评论。像
...
// use \
..
Clang(++) 警告我,这是多行注释
warning: multi-line // comment [-Wcomment]
// use \
^
所以我尝试在末尾添加一些空格,但没有帮助。我能以某种方式转义反斜杠吗?
您可以使用重音符号 (`)
#include<iostream>
using namespace std;
int main()
{
// print `\`
cout << "DONE" << endl;
return 0;
}
虽然这不是技术解决方案,但我会以此为提示写出更好的评论:
// use \ (backslash) instead of the normal slash here, because ...
也许你有这样的代码:
#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 可能会工作(如果下一行是空的)但是如果你把它注释掉你就会遇到麻烦。只需删除最后一个反斜杠。否则不要以反斜杠结束该行,除非它是为了连接...
问题的基础是续行的定义。
当一行以 backslash-newline
组合或 <backslash><whitespace><newline>
组合结束时,编译器会将下一行文本附加到当前文本行。这可以用宏来演示:
#define ME {\
cout << "me\n" \
}
以上将被视为单行:
#define ME {cout << "me\n"}
编译器报错,因为你的“//”注释因为“\”续行符而延伸到下一行。
解法:
将其他字符放在'\'之后。
示例:
'\'
\ ending character