Doxygen 强氧能';源文件和头文件之间的t链接数组和指针表示法
我通常在头文件中声明我的函数,如下所示:Doxygen 强氧能';源文件和头文件之间的t链接数组和指针表示法,doxygen,Doxygen,我通常在头文件中声明我的函数,如下所示: extern int Finalize( int* /*handle*/, uint8_t* /*tag*/, uint16_t /*taglen*/ ); int Finalize( int* handle, uint8_t tag[TAG_SIZE], uint16_t taglen ) 但是,在源文件中定义函数时,如下所示: extern int Finalize( int* /*handle*/, uint8_t* /*tag*/, uint
extern int Finalize( int* /*handle*/, uint8_t* /*tag*/, uint16_t /*taglen*/ );
int Finalize( int* handle, uint8_t tag[TAG_SIZE], uint16_t taglen )
但是,在源文件中定义函数时,如下所示:
extern int Finalize( int* /*handle*/, uint8_t* /*tag*/, uint16_t /*taglen*/ );
int Finalize( int* handle, uint8_t tag[TAG_SIZE], uint16_t taglen )
Doxygen不链接这两个函数,因此头文件中的文档不会从源文件导入信息。是否有任何设置可以让它正确链接这两个功能
埃塔:我不认为这是一个很难理解的问题,但没关系。如果您有两个这样的文件:
extern int Finalize( int* /*handle*/, uint8_t* /*tag*/, uint16_t /*taglen*/ );
int Finalize( int* handle, uint8_t tag[TAG_SIZE], uint16_t taglen )
主要条款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>
定稿
(
int* ;
,
uint8和160;
,
uint16 ;
)
这显然是因为doxygen没有将.c文件中中间参数的数组表示法视为与.h文件中的指针相同。由于该代码目前没有doxygen注释,即没有以
/**
开头的内容。您希望看到什么/您能给我们提供更多的上下文吗?(编辑后)我仍然没有看到任何参数的doxygening,因此我不太惊讶doxygen可能会混淆。请听我说一会儿,然后用int*handle/**
等声明函数,看看这是否有区别。另外,您使用的是哪个版本的强氧?这没有什么区别。我在Windows上使用的是1.8.1.2版。