在某些编程语言中嵌套注释的用法是什么?

时间:2013-12-11 19:16:16

标签: programming-languages comments

为什么嵌套的注释会被某些编程语言(如MATLAB)使用,我只想知道程序中这种注释的用法以及使用这些嵌套注释可以获得哪些优势?

4 个答案:

答案 0 :(得分:1)

您可以使用评论......:

  • 暂时禁用某些代码行。

  • 作为章节的标题。

  • 评论每一行。

  • 在其他评论中添加一些注释或评论。

  • 发送宏订单。

你可以混合所有这些。这就是为什么我们需要不同的方法来标记注释和创建嵌套注释。

答案 1 :(得分:1)

良好的旧Turbo Pascal(又称Borland Pascal)允许使用大括号{ }或括号星号(* *)的多行注释,即使相同样式的多行注释也相互嵌套不要嵌套。

从我以前的工作地点开始,一个好的解决方法是对所有信息性注释使用典型的大括号{ }注释,并专门使用不常见的括号星号(* *)来注释掉代码。用**之类的标记注释掉的代码的中间行仍然是一个不错的主意,并且宏可以在程序员编辑器中用于实现此目的

function ComputeCost(var x : longint); 
{ Wide version: Apply discounts to raw price.} 

(* CODE GRAVEYARD!
** function ComputeCost(var x : integer);
** {Apply discounts to raw price.}
*)

极简主义者总是会说C样式语言允许使用#ifdef SOMETHING或优雅的#if 0之类的结构来禁用代码,从而消除了对嵌套注释的需求。真正的极简主义者希望完全删除旧代码,并说版本控制代替了保留旧代码。一个很好的反驳是将代码与带有折叠支持的程序员编辑器一起注释掉,例如Vim允许在视觉上跨过无效代码,同时保留其作为参考。

答案 2 :(得分:0)

我觉得嵌套评论不是必需的!一般来说,编译器会省略注释,因此注释的主要目的是指示程序员他做了什么或者新程序员知道程序的流程。为什么不必要地嵌套注释..只是一个指示可以没有嵌套..例如:

    for(;;)
     {
        if()
          {
          }
     }/* a loop with an if condition*/ 
**need not be as**
/*a loop/*if condition*/for n times*/

答案 3 :(得分:0)

通常,特定项目或程序的编码标准具有关于何时使用评论样式的规则;一个常见的约定是对方法和类文档使用块注释(/ * * /),对方法体内的注释使用内联注释(//),例如:

/**
 * Helper class to store Foo objects inside a bar.
 */
public class Foobar {
    /**
     * Stores a Foo in this Foobar's bar, unless the bar already contains
     * an equivalent Foo.
     * Returns the number of Foos added (always 0 or 1).
     */
    public int storeFoo(Foo foo) {
        // Don't add a foo we already have!
        if (this.bar.contains(foo)) {
            return 0;
        }
        // OK, we don't have this foo yet, so we'll add it.
        this.bar.append(foo);
        return 1;
    }
}

如果有人想在上述程序中暂时禁用整个方法或类。如果该语言允许嵌套注释,则非常有用。