C中双斜杠后的分号
我对C语言中的注释有一个问题。 例如,当我们写作时C中双斜杠后的分号,c,comments,C,Comments,我对C语言中的注释有一个问题。 例如,当我们写作时 //this is the first step 这意味着一个评论 但是当我们写作的时候 //this is the first step; 这也意味着评论吗?我的意思是,当我们在双斜杠后添加分号时,这是指注释还是程序的主要部分?双斜杠注释后不会解析任何字符。它是由预处理器剥离的。编译器从未看到它。双斜杠注释后没有字符被解析。它是由预处理器剥离的。编译器从未看到它。双斜杠后的所有内容都是注释。 这包括分号、运算符、预处理器指令、关键字甚至C
//this is the first step
这意味着一个评论
但是当我们写作的时候
//this is the first step;
这也意味着评论吗?我的意思是,当我们在双斜杠后添加分号时,这是指注释还是程序的主要部分?双斜杠注释后不会解析任何字符。它是由预处理器剥离的。编译器从未看到它。双斜杠注释后没有字符被解析。它是由预处理器剥离的。编译器从未看到它。双斜杠后的所有内容都是注释。 这包括分号、运算符、预处理器指令、关键字甚至CAT 编辑: 我觉得有趣的是:
//comment \
also part of the comment\
this too part of the comment
我猜反斜杠实际上是被解析的。这是行连续字符。我想值得一提
我猜SO解析器无法识别字符,但它确实存在——至少在MSVC中是这样。不确定它是否是标准的一部分
编辑2:
正如@vsz所指出的,trigraph将被解析,即使在注释中:
/*
??/ is translated to \
the following is not safe:
*/
//do we really need this??/
i++;
前面的代码
i++代码>不会被执行,因为??/
被\
替换,所以i++代码>成为注释的一部分。双斜杠后的所有内容都是注释。
这包括分号、运算符、预处理器指令、关键字甚至CAT
编辑:
我觉得有趣的是:
//comment \
also part of the comment\
this too part of the comment
我猜反斜杠实际上是被解析的。这是行连续字符。我想值得一提
我猜SO解析器无法识别字符,但它确实存在——至少在MSVC中是这样。不确定它是否是标准的一部分
编辑2:
正如@vsz所指出的,trigraph将被解析,即使在注释中:
/*
??/ is translated to \
the following is not safe:
*/
//do we really need this??/
i++;
前面的代码i++代码>不会被执行,因为??/
被\
替换,所以i++代码>成为注释的一部分。/
-样式注释位于行的末尾。分号不作特殊处理;分号结束语句,而注释不是语句。/
-样式的注释位于行的末尾。分号不作特殊处理;分号结束语句,而注释不是语句。它仍然是注释:这两者都不是:
// Hello, world
这也不是:
// Hello, world;
将被执行它仍然是一条注释:这两条:
// Hello, world
这也不是:
// Hello, world;
将执行该//将其后面的所有内容划界在同一行上。一切。也就是说,你可以确信,无论你选择评论什么,都将保留评论
在可能出现混淆的情况下,将其与/**/进行对比。例如:
/*这是一个/*糟糕的评论*/*/
//但这是一个/*好的评论*/这个//将它后面的所有内容划入同一行。一切。也就是说,你可以确信,无论你选择评论什么,都将保留评论
在可能出现混淆的情况下,将其与/**/进行对比。例如:
/*这是一个/*糟糕的评论*/*/
//但是这是一个/*好的评论*/双斜杠注释掉了行yes。编译器将忽略整行(包括分号,是)
对于多行注释,或与某些代码在同一行上进行注释,请在此处使用/*注释*/
Wiki提供了一些很好的信息:
注(来自维基):
C++样式的行注释以//开头,并延伸到
线路。这种注释风格起源于BCPL,并在C语言中生效
C99语法;它在原始K&R C或ANSI中都不可用
C:
双斜杠注释掉了行yes。编译器将忽略整行(包括分号,是)
对于多行注释,或与某些代码在同一行上进行注释,请在此处使用/*注释*/
Wiki提供了一些很好的信息:
注(来自维基):
C++样式的行注释以//开头,并延伸到
线路。这种注释风格起源于BCPL,并在C语言中生效
C99语法;它在原始K&R C或ANSI中都不可用
C:
分号只是注释中的另一个字符
显然,在注释行末尾加分号的做法是有人在代码度量行上作弊。。。基本计算将分号作为语句的代理。他们应该为自己感到羞耻。分号只是评论中的另一个字符
显然,在注释行末尾加分号的做法是有人在代码度量行上作弊。。。基本计算将分号作为语句的代理。他们应该为自己感到羞耻。/
行注释有各种各样的形式。直到行尾,所有内容都被忽略<代码>\
在行尾使注释延伸到下一行。这是一个极端的例子:
\
/\
/|\
-+-\
\|/ \
V \
/
行注释有各种类型和形状。直到行尾,所有内容都被忽略<代码>\
在行尾使注释延伸到下一行。这是一个极端的例子:
\
/\
/|\
-+-\
\|/ \
V \
仍然是注释,在//之后的同一行上的任何内容都将是注释。在两个斜杠之后和换行符之前出现的任何内容都将被编译器忽略。我投了反对票,因为这个问题没有显示任何研究结果。你甚至没有在你最喜欢的编译器上尝试过它(虽然这不是一个正确性的指标,但会构成研究)。我问这个问题是因为我没有编译器。我试图理解代码,用另一个程序来编写它。这可能只是程序员的事情。。。有一段时间,即使是在写电子邮件的时候,我也习惯于在每一行末尾加上分号;仍然是一条评论,在//之后同一行的任何内容都将是一条评论