//在C ++中评论与/ * * /在C中

时间:2014-08-07 10:24:55

标签: c++ c comments

我发现在C中只有一条多行注释/* */。为什么C ++的设计者引入了单行注释//,如果已有多行注释用于同一目的。

与C中的多行注释//相比,在C ++中使用单行注释/* */有什么好处?

6 个答案:

答案 0 :(得分:2)

您的问题的基础是完全错误的,因为C和C ++(以及Objective-C或Java等其他语言)允许完全相同的注释。

//注释在一行末尾添加注释更有用。使用//注释专门允许您通过将代码转换为/ * comments * /来快速删除代码中的行范围。

答案 1 :(得分:1)

这是品味和习惯的问题。

行评论

// like this

的类型更短(在C99代码和C ++ 03代码中都可以接受),它们可以"嵌套"

// nested // line // comment

在C或C ++块注释中

/* like that block
   comment */

可以比线

更小(或更大)
if (/*strange*/ some_test()) {

但它们不能嵌套:

/* WRONG /* NESTED COMMENT */ // is ended here
 but you may want them to nest */

请注意,许多编辑器(例如emacs)或IDE正在对齐/重新格式化/突出显示注释。他们中的大多数(以及GNU indent)都能够有效地处理

/**************************************
 * some boxed block comment
 * like this
 **************************************/

PS。在Ocaml中,某些(* ... *)条评论可以嵌套

答案 2 :(得分:1)

一个例子:

如果你有

i=0;
// this is a comment
printf("%d",i);

您希望暂时消除此块以进行调试测试,例如

/* 
i=0;
//this is Comment
printf("%d",i);
*/

但是,如果你有:

i=0;
/*this is Comment*/
printf("%d",i);

你可以在这里看到问题:

/*
If you had:
i=0;
/*this is Comment*/
printf("%d",i);
*/

编译器会将第一个“* /”视为注释块的结尾。

答案 3 :(得分:0)

我想告诉你的第一件事是你认为C中不允许//,而{C}强烈支持/* Comment *///,这是错误的。

另一件事是//优于/* */

  1. 您可以使用//
  2. 对代码的部分行进行注释
  3. 添加//可在开发时节省大量时间

答案 4 :(得分:0)

  

与C中的多行注释/ * * /相比,在C ++中使用单行注释有什么好处?

单行注释可以嵌入多行注释中。这允许您动态注释代码块(如果您的代码包含单行注释,则只需添加/**/并重新编译。

如果您有阻止评论,则无法使用/**/包围代码(因为该代码块会在第一个现有的评论区块末尾被删除。

  

我发现在C中只有一个多行注释是/ * * /

这是一种常见的误解,因为在C99标准之前C不支持这些评论。旧项目(遗留代码)可能仍然不支持它们,具体取决于编译器选项。

答案 5 :(得分:0)

注意:注释对已编译的编程没有影响它们被跳过它们仅供程序员或读者理解最新情况。

C ++引入单行注释,因为编码时易于使用//用于单行注释而不是/**/.

程序员可以自由地使用任何样式进行编码,但//最好注释1或2行,而超过2行则是使用多行注释样式的好习惯。

我希望你能理解,你也会在编程时遇到不同。