有没有办法让doxygen显示枚举数值而不改变CSS?

not*_*oti 14 c doxygen

我想在doxygen输出中获得枚举成员的实际值.比如我有:

///MyEnum
typedef enum My_Enum
{
MY_ENUM_0,///<MY_ENUM_0
MY_ENUM_1,///<MY_ENUM_1
MY_ENUM_2 ///<MY_ENUM_2
} My_Enum;
Run Code Online (Sandbox Code Playgroud)

输出是:

MyEnum.
Enumerator:
MY_ENUM_0
      MY_ENUM_0.
MY_ENUM_1
      MY_ENUM_1.
MY_ENUM_2
      MY_ENUM_2.
Run Code Online (Sandbox Code Playgroud)

我想要的是:

Enumerator:
MY_ENUM_0
          0 MY_ENUM_0.
MY_ENUM_1
          1 MY_ENUM_1.
MY_ENUM_2
          2 MY_ENUM_2.
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

The*_*ist 0

使用 doxygen,我们可以记录:

  • enum
  • 它的价值观
  • 每个值描述

以下代码片段描述了上述所有 3 个示例。

/*! \enum My_Enum
* Documentation of the enum type.
*/

typedef enum My_Enum {
    MY_ENUM_0, /*!< Document the value 0 */
    MY_ENUM_1, /*!< Document the value 1 */
} My_Enum;

/*! \var My_Enum MY_ENUM_0
 * The description of the MY_ENUM_0. Can contain its enumerated name */

/*! \var My_Enum MY_ENUM_1
 * The description of the MY_ENUM_1. Can contain its enumerated name*/
Run Code Online (Sandbox Code Playgroud)

另请注意,由于宏/枚举扩展不会在 doxygen 注释中发生。如果在 doxygen 注释中使用了任何内容,则需要使用 来扩展它们INPUT_FILTER。例如:

INPUT_FILTER = sed /MY_ENUM_0/0
Run Code Online (Sandbox Code Playgroud)

以下代码片段是必需的

typedef enum My_Enum {
    MY_ENUM_0, /*!< MY_ENUM_0 */
    ...
Run Code Online (Sandbox Code Playgroud)

另请查看此答案以获取有关多种 doxygen 评论风格的详细信息:

  • ///< <comment>
  • /*!< <comment> */

  • 因为你自己写了“0”,所以OP询问如何让Doxygen生成“0”。 (7认同)
  • 当然,我并不是有意粗鲁,问题是枚举值可以使用宏或其他枚举值来定义,然后了解枚举具有哪个值并手动记录/更新它可能会变得非常复杂。 (7认同)
  • 这并不能回答问题。MY_ENUM_0 的值为 0,但它在答案中的代码生成的 doxygen 文档中不可见。 (5认同)