部屋,
我正在尝试用doxygen记录我的C代码,但是使用“成员后的文档”样式似乎对我不起作用。 doxygen文档说:
在成员之后放置文档
如果要记录文件,结构,联合,类或枚举的成员,有时需要将文档块放在成员之后而不是之前。为此,你必须增加一个<注释块中的标记。请注意,这也适用于函数的参数。
以下是一些例子:
[...]
大多数情况下,人们只想在会员后面做一个简短的描述。这样做如下:
int var; //!< Brief description after the member
或
int var; ///< Brief description after the member
最佳来源示例:
/** @file test.c */
void foo(void) {
uint8_t bar; ///< Some random variable
}
我的Doxyfile是pasted here。
我没有在文档中获得变量的描述,而是得到了这个:
2.1.1功能文档
2.1.1.1 void foo(void)
&LT;一些随机变量
有人碰巧知道为什么吗?
答案 0 :(得分:5)
成员文档语法适用于成员。
成员是类或结构中的值(或者您的语言可能称之为)。局部变量是不是成员,因此不会被doxygen覆盖。
这样做的原因是,类的成员通常对其状态至关重要,因此您迫切希望记录这些,因为派生类可能会使用受保护的成员。
另一方面,功能不需要本地变量的文档。毕竟,那些是本地。因此,函数应该由其总的可观察行为来定义,因为局部变量对用户来说并不重要:
struct object_type{
struct object_state_type state; ///< the object's state
};
void bad_documentation(void) {
uint8_t bar; ///< Some random variable
}
/// \brief Initializes the global state of the omnipotence object.
void good_documentation(void) {
uint8_t bar;
/** \remark The object needs to be initialized exactly once,
* otherwise we have some problems.
*/
assert(some_global_var != 0);
/** One can check `some_global_var` whether the global object
* has been initialized
*/
some_global_var = 1;
/// Finally, the object going to be initialized.
impl_obj_state_init(&the_global_object.state);
}
答案 1 :(得分:2)
Doxygen允许您记录文件,结构,联合,类或枚举的成员。您显示的代码显示方法的局部变量,而不是其中一个实体的成员。