使用dOxygen记录带有指定指针的typedef'd结构?

时间:2014-06-24 13:55:42

标签: c++ c struct doxygen typedef

我有一个类似的结构:

/**
*  Typical dOxygen brief about the typedef. Longer description follows.
*/
typedef struct _SOME_STRUCT_TAG {
    int var1; /**< Something useful. */
    int var2; /**< something equally useful. */
} SOME_STRUCT_T, *LPSOME_STRUCT_T /**< A post doc the pointer here. Longer description follows */;

我启用了项目选项TYPEDEF_HIDES_STRUCT。

我希望文档创建两个单独的条目:一个用于指针typedef,另一个用于非指针typedef。目前,我似乎只得到一个指针typedef。

我在这里做错了什么?我也对一般的语法建议持开放态度。请注意,这是针对C库,而不是C ++。似乎dOxygen在处理具有多个语句的typedef时遇到了麻烦(即typedef int var_t,*pvar_t)。

1 个答案:

答案 0 :(得分:2)

IIRC,doxygen根本不支持单个声明中的多个标识符的不同文档。所以将它们分开。

而不是

int a, b, c;

使用

int a;
int b;
int c;

而不是

typedef struct _SOME_STRUCT_TAG {
    int var1; /**< Something useful. */
    int var2; /**< something equally useful. */
} SOME_STRUCT_T, *LPSOME_STRUCT_T;

使用

typedef struct _SOME_STRUCT_TAG {
    int var1; /**< Something useful. */
    int var2; /**< something equally useful. */
} SOME_STRUCT_T;
typedef SOME_STRUCT_T *LPSOME_STRUCT_T;

另请注意,您正在为struct和typedef名称使用保留字,这不仅会产生麻烦,而且还会产生麻烦。

此外,指针的透明typedef名称的这种做法是坏样式。如果指针类型是一个不透明的句柄,并且客户端永远不会看到底层类型,或者甚至知道句柄是一个指针(而不是表索引或其他键),请使用typedef。如果客户端直接使用结构,请让他们使用SOME_STRUCT_T *