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 多行注释警告的主要内容,如果未能解决你的问题,请参考以下文章