/* $Id: file.c,v 1.0 2010/09/15 01:12:10 username Exp $ */
我在文件顶部(标题)的注释中的许多源代码文件中找到此行。为什么?它是针对版本控制软件的吗? -Thanks。
答案 0 :(得分:7)
这些评论会被各种源代码控制系统自动修改,例如作者,日期,历史等等。
请参阅here了解RCS的一些常见内容,这是我见过的第一个实现此类事情的源代码控制系统(这并不意味着 是第一个,只是RCS是我用过的第一个,它有这种能力。)
我们过去使用的一个特殊技巧是放线:
static char *fileId = "$Id: $";
进入源文件(以及头文件,尽管名称必须是唯一的),以便在构建时,它会自动拥有可执行文件中文件的ID。
然后我们可以使用strings
之类的东西来找出用于构建可执行文件的源文件。非常适合现场调试问题。
答案 1 :(得分:3)
它告诉CVS(和其他VCS)在结账时扩展Id的值,因此任何阅读相关源文件的人都会知道确切地检出了哪个版本。不再流行了(如果你将源文件保存在客户端/存储库/工作目录中,你总是可以向你的VCS询问这些信息 - 或者你的VCS会调用这些东西; - )。
答案 2 :(得分:2)
我相信你是对的。它似乎是CVS的关键字替换字符串。 看看这个问题$id: name of file, date/time creation Exp $