你遇到过的源代码中最好的注释是什么?


当前回答

写得很好的Lisp是最容易阅读的语言之一,我喜欢它。但是写得不好的Lisp可能是比糟糕的Java更糟糕的噩梦,等等。

在这里,我们需要创建一个“组文件”,如果一个原始文件有3个变体,后缀为a, b和c。我一直试图追踪一个奇怪的错误,我们得到了不必要的组文件……

  (let ((varianta (format nil "~aa" problem))
        (variantb (format nil "~ab" problem))
        (variantc (format nil "~ac" problem)))
    ;;if the A and B variants exist, create a group file
    ;;(why not just check for a? I don't know, this just feels right)
    (when (and (probe-file varianta)
               (probe-file variantb))
      ...)))

Bug: 1, Gut: 0。

显然,写这篇文章的人没有想到,也许检查所有三种变体是一个好主意。当然,这是我在最初编写这段代码十年之后(它比第一个SVN日志更早)最终追踪到的错误。

其他回答

// Sorry dirty code
i++; //increment i

在linux 1.0内核调度器(schedule .c)中:

Dijkstra可能讨厌我。

/*
 *  'schedule()' is the scheduler function. It's a very simple and nice
 * scheduler: it's not perfect, but certainly works for most things.
 * The one thing you might take a look at is the signal-handler code here.
 *
 *   NOTE!!  Task 0 is the 'idle' task, which gets called when no other
 * tasks can run. It can not be killed, and it cannot sleep. The 'state'
 * information in task[0] is never used.
 *
 * The "confuse_gcc" goto is used only to get better assembly code..
 * Dijkstra probably hates me.
 */
asmlinkage void schedule(void)

(…)

aComment = 'this is not aComment' # this is aComment
class T(object):
    def f(this):
        this is not aComment

这是一个旧的IOCCC获奖条目,我不得不下载整个获奖档案——一个巨大的1.4 M——和grep的几个短语,我记得错了才找到它。

从语法上看,这可能不是注释。或许是这样。我还没想明白。它肯定没有注释分隔符,但也没有字符串分隔符。

C="Lint says "argument Manual isn't used."  What's that
mean?";

没有价格来猜测棉绒的产量。

对于好奇的人来说,这个条目在这里。