Doxygen无法解析C函数指针签名

时间:2014-06-28 00:16:20

标签: c function-pointers doxygen

Doxygen(1.8.6)不会解析这个,对我来说:

/**
  @fn dynArray* dynMap(dynArray* array, void*(*callback)(void**, size_t, dynArray*))
  @brief foo
  @param array    bar
  @param callback baz

  blah blah blah
*/
extern dynArray* dynMap(dynArray*, void*(*)(void**, size_t, dynArray*));

我做错了什么,或者这是一个错误?我注意到,如果我从文档中删除参数名称,它将编译,虽然不正确(它会破坏参数)。但是,如果我将文档与签名完全匹配,则 可以正常工作:

/**
  @fn dynArray* dynMap(dynArray* array, void*(*callback)(void**, size_t, dynArray*))
  @brief foo
  @param array    bar
  @param callback baz

  blah blah blah
*/
extern dynArray* dynMap(dynArray* array, void*(*callback)(void**, size_t, dynArray*));

然而,我在函数的类型定义中得到arraycallback,这不是特别令人满意......

1 个答案:

答案 0 :(得分:1)

为什么在您要记录的符号正好位于注释区后使用@fn?根本不需要。

如果你以某种方式无法抑制使用@fn的冲动,那么你应该确实将参数与声明匹配(或者你可以将注释块移动到函数定义中)。

有关详细信息,请参阅http://www.doxygen.org/manual/docblocks.html#structuralcommands

使用函数指针时,通常最好先键入它们。