有没有一种方法可以让doxygen在不更改css的情况下显示枚举数值?

有没有一种方法可以让doxygen在不更改css的情况下显示枚举数值?,c,doxygen,C,Doxygen,我想获得doxygen输出中enum成员的实际值。 例如,我有: ///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; 我想要的是: Enumerator: MY_ENUM_0 0 MY_ENUM_0. MY_ENUM_1 1 MY_ENUM_1. MY_ENU

我想获得doxygen输出中enum成员的实际值。 例如,我有:

///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;
我想要的是:

Enumerator:
MY_ENUM_0
          0 MY_ENUM_0.
MY_ENUM_1
          1 MY_ENUM_1.
MY_ENUM_2
          2 MY_ENUM_2.

或者类似的东西。

使用doxygen,我们可以记录:

  • 枚举
  • 每个值的描述
下面的代码片段描述了上述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*/
对于以下代码段是必需的

typedef enum My_Enum {
    MY_ENUM_0, /*!< MY_ENUM_0 */
    ...
typedef枚举我的枚举{
MY_ENUM_0,/*!

另外,请查看此,了解有关多个doxygen注释样式的详细信息:

  • //
  • /*!<*/

我想不出直接从doxygen执行此操作的方法。doxygen不是C编译器。因此它不会派生作为编译时常量的枚举值

doxygen可以做的最接近的事情是因为它有一个C预处理器。因此,如果您有一些值被分配给一个通过预处理器扩展派生的常数,doxygen可以扩展宏并向您显示将被分配的内容

P.>在CooDeTror的回答上,你可以考虑写脚本,在DoXEGEN之前运行,复制你的文件,搜索这个模式:

enum *** {
    ***, ///< %VAL%:
enum**{
***,//<%VAL%:

并将每次出现的%VAL%替换为该值,这样您就不会手动跟踪数字。在doxygen运行后,需要替换包含%VAL%标记的原始文件。这不是一个特别优雅或健壮的解决方案。

这并不能回答问题。MY_ENUM_0的值为0,但它将您的答案中的代码生成的doxygen文档中将不可见。doxygen组件
/*!因为您自己编写了“0”,OP询问如何让doxygen生成“0”是的,你是对的。需要手动操作。这是我所知道的最有效的方法。当然,我不是故意粗鲁,问题是枚举值可以使用宏或其他枚举值定义,然后知道枚举具有哪个值以及手动记录/更新它会变得非常复杂。最近我又看到了这个问题,我的建议在doxygen问题跟踪程序()中打开一个问题请参阅我的评论和问题。@albert谢谢你的建议,也谢谢你链接关于此主题的其他问题。我认为这是一个新功能的好主意。我发现自己处于一种必须多次半手动计算枚举值的情况。
typedef enum My_Enum {
    MY_ENUM_0, /*!< MY_ENUM_0 */
    ...
enum *** {
    ***, ///< %VAL%: