C中双斜线后的分号

问题描述 投票:2回答:8

我对C语言的评论有疑问。当我们写作例如

//this is the first step

这意味着评论。

但是当我们写作时

//this is the first step;

这也意味着评论吗?我的意思是当我们在双斜线后添加分号时,这是否意味着程序的注释或主要部分?

c comments
8个回答
2
投票

双斜线注释出行是。编译器将忽略整行(包括分号,是)。

对于多行注释,或与某些代码在同一行注释,请使用/ * comment here * /

Wiki在这里有一些很好的信息:http://en.wikipedia.org/wiki/C_syntax#Comments

注意(来自Wiki):

C ++样式行注释以//开头并延伸到行尾。这种评论风格起源于BCPL,并在C99中成为有效的C语法;它在原始的K&R C和ANSI C中都不可用:


8
投票

双斜线后的所有内容都是评论。

这包括分号,运算符,预处理程序指令,关键字甚至猫。

编辑:

我发现有趣的东西:

//comment \
also part of the comment\
this too part of the comment

我想反斜杠实际上是解析的。这是线条延续字符。值得一提的是我想。

我想SO解析器不识别该字符,但确实存在 - 至少在MSVC中。不确定它是否属于标准的一部分。

编辑2:

正如@vsz指出的那样,即使在评论中也会解析三字符:

/*
??/ is translated to \   
the following is not safe:
*/

//do we really need this??/
i++;

之前的代码i++;将不会被执行,因为??/\取代,因此i++;成为评论的一部分。


3
投票

分号只是注释中的另一个字符。

按理说,在注释行末尾放置分号的做法是欺骗代码行度量的人...基本计算将分号视为语句的代理。他们该为自己感到惭愧。


0
投票

解析双斜杠注释后没有字符。它被预处理器剥离了。编译器永远不会看到它。


0
投票

//风格的评论走到了尽头。分号不经过特殊处理;分号结束语句,而注释不是语句。


0
投票

它仍然是一个评论:这两个:

// Hello, world

也不是这样

// Hello, world;

将被执行


0
投票

//在同一行上划分跟随它的所有内容。一切。那就是你可以确信,无论你选择评论什么都将留下评论。

与/ * * /形成对比,可能出现混淆。例如:

/ *这是一个/ *坏评论* / * /

//但这是一个/ *好的评论* /


0
投票

//线评论有各种各样的形状。直到最后,一切都被忽略了。该行末尾的\使评论延伸到下一行。这是一个极端的角落案例:

\
/\
/|\
-+-\
\|/ \
 V   \
© www.soinside.com 2019 - 2024. All rights reserved.