在区分“源”文件和“头文件”(主要是C和C ++)的语言中,最好在头文件中记录函数:
(从CCAN窃取)
/**
* time_now - return the current time
*
* Example:
* printf("Now is %lu seconds since epoch\n", (long)time_now().tv_sec);
*/
struct timeval time_now(void);
或在源文件中?
(从PostgreSQL窃取)
/*
* Convert a UTF-8 character to a Unicode code point.
* This is a one-character version of pg_utf2wchar_with_len.
*
* No error checks here, c must point to a long-enough string.
*/
pg_wchar
utf8_to_unicode(const unsigned char *c)
{
...
请注意,某些内容仅在标头中定义,例如结构,宏和static inline
函数。我只是在谈论在头文件中声明并在源文件中定义的内容。
这是我能想到的一些论点。我倾向于在源文件中进行文档记录,因此我的“ Pro-header”参数可能有些弱。
专业头:
- 用户不需要源代码即可查看文档。
- 来源可能不方便,甚至无法获取。
- 这使接口和实现进一步分开。
原始资料:
- 它使标题大大缩短,使读者可以从整体上鸟瞰模块。
- 它将功能的文档与其实现配对,从而更容易看出该功能是否按其要求执行。
在回答时,请警惕基于什么工具和“现代IDE”可以做什么的争论。例子:
- 专业标题:代码折叠可通过隐藏注释来帮助使注释的标题更易于浏览。
- Pro-source:cscope的
Find this global definition
功能将您带到源文件(定义所在的位置),而不是头文件(声明所在的位置)。
我并不是说不要提出这样的论据,但要记住,并不是每个人都对使用的工具感到满意。