在Doxygen中引用参数的正确方法是什么?

时间:2013-03-13 23:51:24

标签: doxygen

我有一个函数的以下Doxygen文档:

/**
  @brief Does interesting things

  @param[in]  pfirst The first parameter: a barrel full of monkeys

  @pre
    "pfirst" must have been previously passed through BarrelFiller()
*/

请注意,pfirst是一个参数,它在前提条件中被引用。

我在这里用引号包围它,因为我想从文本的其余部分中脱颖而出。但是这样做会很好,Doxygen会强调命令,最好将它链接到参数定义。有没有办法做到这一点?

如果只使用默认配置(或其微小的改动),这将是特别好的。

3 个答案:

答案 0 :(得分:62)

Doxygen提供命令\p,用于指示下一个单词是函数的参数。你可以像这样使用它:

... the \p x and \p y coordinates are used to ...

我相信默认情况下会使用打字机字体来表示。我不认为这目前提供任何自动链接功能,但可能在未来。

有一个相关的命令\a,用于标记成员参数。默认情况下,它会在文本(<em>arg</em>

中强调显示

您可以找到有关各种Doxygen Special Commands reference的更多信息。

答案 1 :(得分:1)

我知道您正在询问@param位用户,但是Google搜索也在这里搜索@return类型,因此答案如下:

Doxygen #在返回值前面的用法以创建指向其定义的超链接:

使用#符号。

完整示例(请参见下面的@return类型,每个类型前面应有# ):

#include <stdarg.h> // for va_list, va_start, va_end
#include <stdio.h>  // for vsnprintf

// Function prototype:

int debug_printf(const char *format, ...) __attribute__((format(printf, 1, 2)));

// Function definition:

/// @brief      Function to print out data through serial UART for debugging
/// @param[in]  format  `printf`-like format string
/// @param[in]  ...     `printf`-like variadic list of arguments corresponding to the format string
/// @return     Number of characters printed if OK, or < 0 if error:
///             - #DEBUG_ERR_ENCODING
///             - #DEBUG_ERR_OVERFLOW
///             - #DEBUG_ERR_UART
int debug_printf(const char *format, ...)
{
    int num_chars_printed;

    va_list args;
    va_start(args, format);

    // Use `vsnprintf()` now here to format everything into a single string buffer, then send 
    // out over the UART
    // - num_chars_printed could be set to one of the error codes listed above here

    va_end(args);

    return num_chars_printed;
}

Doxygen输出现在将错误返回类型显示为Number of characters printed if OK, or < 0 if error:行下的子项目列表,,并且由于{,每个错误类型都被转换为各自定义的URL。 {1}}前面的字符

氧气参考:

  1. @Jeremy Sarao's answer,部落知识在我的头上流淌。
  2. 部落知识。我不知道如何或在哪里找到此信息。在Doxygen文档中。

其他参考

  1. GCC超级有用的printf格式属性的文档:
    1. https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html-参见“格式”部分
    2. How to use formatting strings in user-defined functions?
    3. How should I properly use __attribute__ ((format (printf, x, y))) inside a class method in C++?
  2. 基本#包装器实现:https://github.com/adafruit/ArduinoCore-samd/blob/master/cores/arduino/Print.cpp#L189

答案 2 :(得分:0)

使用&#34;#&#34;您要引用的参数前面的符号:

#pfirst must have been previously passed through BarrelFiller()

in the doxygen manual