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

How to escape backslash in // comment

本文关键字:注释 转义 何转义      更新时间:2023-10-16

我有一个以反斜杠结尾的注释。就像

...
// use 
..

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

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

所以我试着在末尾添加一些空白,但没有帮助。我能转义反斜杠吗?

问题的基础是连行的定义。

当一行以backslash-newline组合或<backslash><whitespace><newline>组合结尾时,编译器将下一行文本追加到当前行文本之后。这可以用宏来演示:

#define ME {
cout << "men" 
}

以上内容将被视为单行:

#define ME {cout << "men"}

编译器抱怨,因为你的"//"注释延伸到下一行,因为''的延续字符。

解决方案:
在""后面加上其他字符。
例子:

  ''
   ending character

虽然这不是一个技术解决方案,但我认为这是一个提示,可以写一个更好的注释:

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

你可以使用Grave Accent (')

#include<iostream>
using namespace std;
int main()
{
    // print ``
    cout << "DONE" << endl;
    return 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可能会工作(如果下一行是空的),但如果你注释掉它,你会遇到麻烦。只需删除最后一个反斜杠。否则不要以反斜杠结束行,除非它是用来连接…