我通常在头文件中声明我的函数,如下所示:
extern int Finalize( int* /*handle*/, uint8_t* /*tag*/, uint16_t /*taglen*/ );
但是,当在源文件中定义函数时,如下所示:
int Finalize( int* handle, uint8_t tag[TAG_SIZE], uint16_t taglen )
Doxygen不会链接这两个函数,因此头文件中的文档不会从源文件中导入信息。是否有任何设置可以正确地链接这两个功能?
ETA:我认为这不是一个难以理解的问题,但还好。如果您有两个这样的文件:
main.c中:
#include "main.h"
/** Finalize something somehow. */
int Finalize( int* handle, uint8_t tag[TAG_SIZE], uint16_t taglen )
{
}
和main.h:
extern int Finalize( int* /*handle*/, uint8_t* /*tag*/, uint16_t /*taglen*/ );
main.c的输出是你所期望的,但main.h的输出是:
<table class="memname">
<tr>
<td class="memname"><a class="el" href="globals_8h.html#a2c3e4bb40f36b262a5214e2da2bca9c5">Error</a> Finalize </td>
<td>(</td>
<td class="paramtype">int * </td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t * </td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t </td>
<td class="paramname"> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
这显然是因为doxygen没有看到.c文件中的中间参数的数组符号与.h文件中的指针相同。