我见过的每一个软件都包含一个文件开头的版权声明,并且需要大量的评论。因此,您必须向下滚动才能看到代码,这有点烦人,特别是当代码本身非常短时。
我认为将版权声明保留在文件底部并将所有子句合并为单行(或少数行)会更好。这只是为了满足正式问题。 LICENSE文件中提供了易于阅读的版本。
但到目前为止我还没有见过这种做法。这只是一种部落习俗还是有原因的呢?
编辑:这是< list>以GNU STL库为例:
// <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 */
答案 0 :(得分:1)
虽然它不一定是定制或要求,但标准倾向于规定评论应该进行任何代码定义。以NDOC notation为例。
在版权的情况下,您通常希望人们在继续使用您的代码之前阅读它(EULA始终显示在安装程序的开头)。如果版权声明放在代码定义的底部,则很有可能会被忽略。
答案 1 :(得分:0)
如果您将版权注释放在文件的开头,则当有人打开文件时,版权声明是可见的(如果打开文件的人不使用自动转到上次访问行的编辑器)。如果版权评论放在文件的底部,人们需要滚动到最后才能看到版权,这是有人应该有兴趣看的第一件事。