特别是在驱动驱动程序时,我经常有一组定义,通常赋予寄存器中的位含义
例如
#define STATUS_READY (0x01)
#define STATUS_STALL (0x02)
#define STATUS_FAIL (0x04)
...
StatusRegister = getStatus();
if( (StatusRegister & STATUS_READY) == STATUS_READY)
{
DoStuffWhenReady();
}
a.s.o。
Doxygen中是否有办法将这些定义分组到一个命名组中,因此它们将作为一个组显示在定义列表中,我可以参考它们?
eaxmple:
/**
* Return the status of register foo
*
* @return status bit for register foo see @ref FooStatusBits for bit defines
*/
int getStatus(void);
我试过
///@name FooStatusBits
///@{
#define STATUS_READY (0x00)
#define STATUS_STALL (0x01)
#define STATUS_FAIL (0x02)
///@}
无法正常工作(也尝试使用{} in {})
我试过
///@defgroup FooStatusBits Regiser foo status bits
///@{
#define STATUS_READY (0x00)
#define STATUS_STALL (0x01)
#define STATUS_FAIL (0x02)
///@}
部分工作,但是将这些定义的文档放在一个单独的html文件中,它们出现在模块列表中,都是不需要的。
答案 0 :(得分:0)
参考documentation,它说:
\ref <name>
:创建对命名部分,子部分,页面或锚点的引用。
它没有提到组,所以我认为你不能用ref
引用命名组。如果
解决方法可能是使用关键字anchor
创建锚点。您必须将此锚点放在@name
块中,然后您可以自由地引用它:
/**@name FooStatusBits
* @anchor FooStatusBits
*/
///@{
#define STATUS_READY (0x00)
#define STATUS_STALL (0x01)
#define STATUS_FAIL (0x02)
///@}
这种解决方法的一个暗示是要记住,组的名称是字符串,而不是单个单词,因此doxygen不会将其作为链接符号。