gcc 多行注释警告

Posted

技术标签:

【中文标题】gcc 多行注释警告【英文标题】:gcc multi line comment warning 【发布时间】:2018-03-28 00:36:40 【问题描述】:

我收到警告

警告:多行注释 [-Wcomment]

由于我的评论看起来像

// strings can start with a \ and also end with a \ 

我了解该错误并已看到有关该主题的其他 SO 消息。

我可以轻松修复警告(通过双引号 \s)。

我很好奇的是,我小心翼翼地确保不以\结尾。该行以 \ 结尾,然后是一个空格。这是预处理器剥离我的尾随空格从而引入警告吗?

【问题讨论】:

您可以在评论末尾添加...,或者使用'\' 而不是其中的\ 在最后的\后面加一个字符 @Indent 解决问题很容易,但我想了解发生了什么。 编译器认为以“\”结尾的行在下一行继续 ***.com/questions/7059549/… 【参考方案1】:

在initial processing 预处理器期间,对其输入执行一系列文本转换。

这是来自文档的引用(相关部分以粗体显示):

连续的行合并为一长行。

续行是以反斜杠结尾的行,.反斜杠被删除,下一行与当前行连接。

...

续行上的尾部反斜杠通常称为反斜杠换行符。

如果反斜杠和行尾之间有空格,那仍然是续行。但是,由于这通常是编辑错误的结果,并且许多编译器不会接受它作为续行,因此 GCC 会警告您。

在这种情况下,最好使用'\' 而不是\,因为反斜杠用作符号而不是续行指示符。另一个(主观较差的)选项是在\ 之后放置一个结束的非空白字符(例如一个点)。

【讨论】:

感谢您的链接和详细信息。对于信息 clang 和 icc 做同样的事情,但没有来自 MSVC 的警告。

以上是关于gcc 多行注释警告的主要内容,如果未能解决你的问题,请参考以下文章

vim—多行注释取消多行注释

vim中多行注释 和 删除多行注释

android 代码中如何注释多行

vim中多行注释 和 删除多行注释

Visual Studio 中如何同时注释多行和取消注释多行

使用UltraEdit配置多行注释和取消多行注释