1

我见过的每个软件,在文件开头都包含版权声明,并且需要大量注释。因此,您必须向下滚动才能看到代码,这有点烦人,尤其是当代码本身很短时。

我认为将版权声明保留在文件底部并将所有条款加入单行(或几行)会更好。这只是为了满足形式问题。许可证文件中提供了易于阅读的版本。

但到目前为止我还没有看到过这样的做法。这只是部落习俗还是有原因?

编辑:这里以 GNU STL 库中的 <list> 为例:

// <list> -*- C++ -*-

// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING.  If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.

// As a special exception, you may use this file as part of a free software
// library without restriction.  Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License.  This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.

/*
 *
 * Copyright (c) 1994
 * Hewlett-Packard Company
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  Hewlett-Packard Company makes no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied warranty.
 *
 *
 * Copyright (c) 1996,1997
 * Silicon Graphics Computer Systems, Inc.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  Silicon Graphics makes no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied warranty.
 */

/** @file list
 *  This is a Standard C++ Library header.  You should @c #include this header
 *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
 */

#ifndef _GLIBCXX_LIST
#define _GLIBCXX_LIST 1

#pragma GCC system_header

#include <bits/functexcept.h>
#include <bits/stl_algobase.h>
#include <bits/allocator.h>
#include <bits/stl_construct.h>
#include <bits/stl_uninitialized.h>
#include <bits/stl_list.h>

#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/list.tcc>
#endif

#ifdef _GLIBCXX_DEBUG
# include <debug/list>
#endif

#endif /* _GLIBCXX_LIST */
4

2 回答 2

1

虽然它不一定是自定义或要求,但标准倾向于规定注释应该继续任何代码定义。以NDOC 表示法为例。

在版权的情况下,您通常希望人们在继续使用您的代码之前阅读它(EULA 始终显示在安装程序的开头)。如果将版权声明放在代码定义的底部,则很有可能会被忽略。

于 2010-08-21T01:30:19.217 回答
0

如果您将版权注释放在文件的开头,则版权声明在有人打开文件时可见(如果打开文件的人没有使用自动转到最后访问的行的编辑器)。如果将版权注释放在文件的底部,人们需要滚动到最后才能看到版权,这是人们应该有兴趣看到的第一件事。

于 2010-08-21T01:35:23.477 回答