在doxygen手册中的示例后,我构建了测试标题test.h
:
/**
* @file test.h
*/
/** @brief This is a struct
* @var foo A foo.
* @var bar Also a Foo.
* @var baz (unused field)
*/
typedef struct {
int foo;
int bar;
char *baz;
} whatsit;
当我使用默认Doxyfile
(使用' doxygen -g
'生成)时,我会看到警告:
... test.h:11:警告:未记录复合whatsit
... test.h:7:警告:记录的符号`foo A Foo`未定义
... test.h:12:警告:没有记录类whatsit的成员foo(变量)
是什么给出的?我在手册中的印象是,当评论直接位于定义之前时,您不需要@struct
之类的标签,并且在上面的块中记录成员变量是合法的,而不是它们用/*< ...
语法声明的行相同。 (我绝对讨厌后一种风格......)
如何才能正确识别评论?
答案 0 :(得分:4)
根据文件: 24.51 \ var(变量声明)
表示注释块包含变量或枚举值的文档(全局或作为类的成员)。此命令等效于\ fn,\ property和\ typedef。
表示在\ var行只有变量的名称应该驻留。由于变量foo
不存在,但结构成员whatsit::foo
必须使用完整的限定名称。
结构的类似推理。
结果应该是:
/**
* @file test.h
*/
/** @struct whatsit
* This is a struct
*
* @var whatsit::foo
* A foo.
* @var whatsit::bar
* Also a Foo.
* @var whatsit::baz
* (unused field)
*/
typedef struct {
int foo;
int bar;
char *baz;
} whatsit;