我的团队开始使用doxygen记录我们的C代码,特别注意我们的公共API头文件。在doxygen中似乎有很大的灵活性和不同的特殊命令,这很好,但不经过反复试验就不清楚什么是好东西,什么是坏东西。

你最喜欢用什么方法来标记你的代码,你必须做什么和不做什么? 请提供您的最佳建议,每个答案一个,以方便投票。

我希望定义API文档的整个方法,包括提供一个模板让团队的其他成员开始工作。到目前为止,我有这样的东西:

/**
 * @file   example_action.h
 * @Author Me (me@example.com)
 * @date   September, 2008
 * @brief  Brief description of file.
 *
 * Detailed description of file.
 */

/**
 * @name    Example API Actions
 * @brief   Example actions available.
 * @ingroup example
 *
 * This API provides certain actions as an example.
 *
 * @param [in] repeat  Number of times to do nothing.
 *
 * @retval TRUE   Successfully did nothing.
 * @retval FALSE  Oops, did something.
 *
 * Example Usage:
 * @code
 *    example_nada(3); // Do nothing 3 times.
 * @endcode
 */
boolean example(int repeat);

当前回答

如果使用\defgroup对成员函数和字段进行分组有意义的话。这是非常有用的,即使你说得不多。

其他回答

使用了大量的链接。这可以使用see also链接(如果您喜欢,可以使用\see或@see)来完成,并确保在文档中使用正确的类名引用其他类名。例如,如果你将FUZZYObject类引用为一个“对象”,那么在它后面立即写上类的名称(例如:“疲惫的对象(FUZZYObject)”)。

当我发现自己在高分辨率的屏幕上编辑代码时,我已经从使用反斜杠转向使用@前缀的Doxygen命令。不那么嘈杂的反斜杠发现自己现在太难以分辨出Doxygen命令。

不要用@author或@date (@date在另一篇文章中提到过)。这些都是由修订控制系统处理的。

总是在类中包含描述。试着说明一个类是如何使用的,或者为什么使用它,而不仅仅是它是什么(通常只是反映了名称)。

你不需要也不应该在@file指令中写入文件名,doxygen会自动读取文件名。写文件名的问题是,当你重命名文件时,你也必须改变@file指令。

提供@author和@date信息在大多数情况下也是无用的,因为源代码控制系统做得比手动编辑文件要好得多。

如果你使用以下Doxygen语法并在Doxygen的配置中启用JAVADOC_AUTOBRIEF,你也不必写@brief:

/*! Short Description on the first line

    Detailed description...
    ...
*/
void foo(void) {}

函数的@name指令在大多数时候也是100%冗余的,完全无用。它只在有人修改函数名而不是doxygen @name时才会带来错误。