我知道你在询问@param
参数,但谷歌搜索也会将@return
类型的问题带到这里,所以这里也提供一下答案:
使用Doxygen #
在返回值前创建超链接到其定义:
使用#
符号。
完整示例(请查看下面带有#
的@return
类型):
#include <stdarg.h>
#include <stdio.h>
int debug_printf(const char *format, ...) __attribute__((format(printf, 1, 2)));
int debug_printf(const char *format, ...)
{
int num_chars_printed;
va_list args;
va_start(args, format);
va_end(args);
return num_chars_printed;
}
现在,Doxygen的输出将错误返回类型显示为子项目列表,位于行
Number of characters printed if OK, or < 0 if error:
下,
每个错误类型因其前面的#
字符而转化为其各自定义的URL。
Doxygen参考:
- 请查看@Jeremy Sarao的答案和我们脑海中的部落知识。
- 部落知识。我不知道如何在Doxygen文档中找到这些信息。
- 在此处查看Doxygen的所有特殊命令的列表:http://www.doxygen.nl/manual/commands.html(例如:
\brief
或@brief
、\note
或@note
、\details
或@details
、\example
等)。
- 请注意,可能的
param
值为param[in]
、param[in,out]
和param[out]
。更多细节和官方文档请参见以下引用:
- 那是一个输入还是输入/输出参数?Doxygen,C++
param
特殊命令的官方Doxygen文档:http://www.doxygen.nl/manual/commands.html#cmdparam
- 其他演示Doxygen使用的代码示例:
- STM32如何获取最后一个复位状态
- C代码中的错误处理
其他参考:
- GCC的printf格式属性文档:
- https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html - 参见“format”部分
- 如何在用户定义的函数中使用格式化字符串?
- 如何在C++类方法中正确使用__attribute__((format(printf, x, y)))?
printf
基本包装器实现:https://github.com/adafruit/ArduinoCore-samd/blob/master/cores/arduino/Print.cpp#L189
其他Doxygen示例:
(从我的eRCaGuy_dotfiles项目中复制而来)
完整的Doxygen函数头示例:
my_enum_t myFunc(int var1, int var2, int* var3, int* var4)
{
my_enum_t error = ENUM_VALUE_1;
if (!var3 || !var4)
{
error = ENUM_VALUE_2;
goto done;
}
if (something_else)
{
error = ENUM_VALUE_3;
goto done;
}
done:
return error;
}
您也可以使用
@
代替
\
:
void myFunc(int var1, int var2, int* var3, int* var4)
{
}
这里是较短的版本,现在又回到了使用\
而不是@
的方式:
void myFunc(int var1, int var2, int* var3, int* var4)
{
}
\
替换为@
,从而获得相同的结果。因此,@p
在这里也适用。 - underscore_d