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

我收到警告

警告:多行注释 [-Wcomment]

由于我的评论看起来像

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

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

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

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

【问题讨论】:

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

标签: c++ gcc comments compiler-warnings


【解决方案1】:

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

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

连续的行合并为一长行。

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

...

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

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

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

【讨论】:

  • 感谢您的链接和详细信息。对于信息 clang 和 icc 做同样的事情,但没有来自 MSVC 的警告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
相关资源
最近更新 更多