Tag: doxygen

c中的doxygen:定义的分组

我用doxygen记录C代码。 为了使文档更具可读性,我想至少使用@defgroup和@ingroup将每个.c / .h文件对中的代码添加到一个组中。 在这些组中,我想使用@name块将一些定义组合在一起。 “文件”页面中的结果与我的预期密切相关:文件中记录的所有内容都列在那里,或多或少地很好地分组。 另一方面,在“模块”页面中,仅列出函数和变量,并在第一个@name块之前的定义列在“变量”下。 缺少所有其他定义和枚举。 删除@name块列出“variables”下的所有定义/ typedefs / enums。 没有自己的宏或枚举部分,也没有在这些页面上进一步分组。 如何在模块/组页面上列出的组中获取所有定义和枚举,例如在文档页面上记录定义/function等? 我使用doxygen 1.8.9.1 windows binarires。 我的代码看起来类似于:.h文件: /** @file * blabla * @author bla */ /// @ingroup MY_GRP /// @{ #define SOMEDEF1 1 /// @name Special defs /// @{ #define SOMEDEF2 2 /// @} enum someenum { foo, bar }; extern int some_variables; […]

如何通过doxygen扩展宏,但没有记录为定义?

说我有: #define MY_MACRO(FOO) void FOO(); MY_MACRO(hi); MY_MACRO(hey); MY_MACRO(hello); #undef MY_MACRO 我希望通过doxygen扩展宏,我可以通过正确的方式配置它来完成: ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES EXPAND_AS_DEFINED = MY_MACRO 这使我能够在doxygen输出中看到宏的扩展结果(函数hi , hey和hello )。 到目前为止,这一切都很好。 但问题是,doxygen还将MY_MACRO为定义。 但是,我不希望API的客户端知道MY_MACRO ,因为它没有用,并且不能被它们使用,并且不应该对它们可见。 我的doxygen配置中有EXTRACT_ALL = YES ,我不想改变它。 我尝试了以下配置但没有成功: PREDEFINED = DOXYGEN_SKIP_FOR_USERS 使用以下代码: #ifndef DOXYGEN_SKIP_FOR_USERS #define MY_MACRO(FOO) void FOO(); #endif /*DOXYGEN_SKIP_FOR_USERS*/ MY_MACRO(hi); MY_MACRO(hey); MY_MACRO(hello); #undef MY_MACRO 这隐藏了define的文档,但当然会阻止扩展,所以我没有得到生成的API中记录的函数。 我很感激你的帮助。

扫描代码注释的工具,并转换为标准格式

我正在研究一个已经看到许多不同作者和许多不同文档样式的C项目。 我是doxygen和其他文档生成工具的忠实粉丝,我想迁移这个项目以使用其中一个系统。 是否有人知道可以扫描源代码注释的工具,如“描述”,“作者”,“文件名”和其他类型的上下文,以智能地将注释转换为标准格式? 如果不是,我想我可以写一个疯狂的脚本,或手动转换。 谢谢

使用Doxygen将链接插入另一个文件中的function?

我有两个C源文件。 对文件A的函数bar()注释需要引用文件B的函数foo() 。 我怎样才能建立这个链接? 我试过了: 写一些像: Bc::foo()希望doxygen会转到文件B并在那里找到函数foo 。 也试过简单::foo()但没有帮助。 然后我尝试给文件Bc一个特殊的标记名,如//! @file specialtag //! @file specialtag在Bc第一行,然后在我的评论中做了specialtag::foo() ,但没有太多改变。 我试图用\ref和\link强制链接,但即使这样也无济于事。 //! @file //! @file行存在于Ac和Bc因此doxygen应该知道代码。 编辑 我尝试了@doxygen的建议,但没有运气。 我做了一个示例项目,以显示我遇到问题的地方,它在这里: http : //www.filedropper.com/testdoxygen2tar 我使用了使用doxygen -g制作的默认设置文件。 我得到的输出: 您可以看到foobar函数未链接到。 编辑2 发现了问题。 函数foo没有文档,因此没有生成任何页面,所以doxygen当然没有页面可以链接到。 (我在启用SOURCE_BROWSER选项的情况下生成文档,并希望生成函数定义的链接)

用C中的Doxygen记录变量

码: #include /* * \var int iOne * \brief Integer 1 */ /* * \var int iTwo * \brief Integer 2 */ /* * \var int iThree * \brief Integer 3 */ /** * \brief Imitates a sheep. */ void sheep(); /** * \brief Main function for test code */ int main() { int iOne, […]

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

我想在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; 输出是: MyEnum. Enumerator: MY_ENUM_0 MY_ENUM_0. MY_ENUM_1 MY_ENUM_1. MY_ENUM_2 MY_ENUM_2. 我想要的是: Enumerator: MY_ENUM_0 0 MY_ENUM_0. MY_ENUM_1 1 MY_ENUM_1. MY_ENUM_2 2 MY_ENUM_2. 或类似的东西。

C中Doxygen中的函数指针处理

在我的代码中,vtable包含几个函数指针。 Doxygen无法跟随它们。 我想强制它识别可能的路径,以生成一个完整的调用图,因为现在缺少这部分。 例: typedef Bool(*SPECIAL_FUNC)(KEY key); typedef struct{ int a; int b; SPECIAL_FUNC; }OBJ; Bool add(KEY key); //code… Bool sub(KEY key); //code…

doxygen一次注释多个变量

如果我有以下内容: /** * @brief (x,y,z) points for block */ int x, y, z; 它只会生成x的文档,是否可以在doxygen中使用一条注释对所有x,y和z进行注释? 编辑按照envu的建议我现在有以下内容(基于http://www.stack.nl/~dimitri/doxygen/grouping.html#memgroup ) //@{ /** some documentation here */ int x, y, z; //@} 要么 //@{ /** * @brief some documentation here */ int x, y, z; //@} 然而,这两个仍然只记录x。 尝试使用不同的表单我还没有得到相同的文档字符串来跨越多个变量

X-macro打破了doxygen callgraph

我有3个文件: test.c的 int table[] = { #define X(val) val, #include “test.x” #undef X }; void level2(void) { level3(); level4(); } void level3(void) { level4(); } test2.c中 void level1(void) { level2(); level3(); level4(); } void level4(void) { } test.x X(1) X(2) X(3) 我使用doxygen为这些函数创建调用图。 这是我的预期: 1级: 引用level2(),level3()和level4()。 level2的: 引用level3()和level4()。 由level1()引用。 3级: 参考文献level4()。 由level1()和level2()引用。 级别4: 由level1(),level2()和level3()引用。 但这是我得到的: 1级: […]

在C的doxygen文档中展开非函数宏

我试图使用doxygen记录我的C代码。 我有一些默认值设置为#define的宏。 (我知道C没有默认值,但这只是一个例子) 例如: #define DEFAULT_WIDTH 100 #define DEFAULT_HEIGHT 200 在doxygen中我添加了一个别名,以我想要的方式处理默认值。 考虑下面的示例函数 //! Initializes something //! @param width The width @default DEFAULT_WIDTH //! @param height The height @default DEFAULT_HEIGHT //! @return Result of initialization char initSomething(int width,int height); 这将生成我想要的文档,除了一个重要的事实。 DEFAULT_WIDTH和DEFAULT_HEIGHT不会扩展,我得到的宏名称分别不是100和200。 我确实已经检查了MACRO_EXPANSION和ENABLE_PREPROCESSING。 我错过了什么? 有没有办法用doxygen实现这个目的? 我正在使用doxywizard配置doxygen,我目前正在Windows下进行测试。 编辑:正如ugoren指出的那样,可以只记录宏,然后doxygen会将文档链接到它们。 这就是我当前实现在我的项目中的实际情况。 但我正在尝试考虑其他选项 – 如果存在的话。