请问写C语言有没有什么自动生成函数注释的工具?

比如我通过C语言编写了一个接口头文件,里面包含了一些结构体定义和接口函数声明。我在编写文件的时候没有注释,当想release给别人的时候,希望能够后加一些注释说明。比如文件中有如下结构:

struct test_stu {
  int var1;
  int var2;
};

int foo1(void);
int foo2(int arg1, int arg2);
void foo3(int arg);

我希望在struct上一行插入注释的时候能够自动识别下面的是结构体,按照类型模板展开;在foo1上一行插入注释时能识别下面的是函数,按照函数模板展开,并且能够根据返回值类型是否为void, 是否有参数,参数个数有几个,来展开是否有对应的return说明和parameter说明。

请问是否有这样的工具?

用yasnippet的command模式。暂时按你的描述应该(if (looking-at "\nstruct") ...)来判断一下就行。哦还有参数个数,那要再加点正则,目测也不难。

sphinx-doc

不过平时用的不多,主要是代码风格太好 :blush: 好的代码,看变量、函数名就知道大意了

主要最近写了个接口,想着写写注释能让其他用户看懂,就想着有没有类似的工具。

生成注释问题不大,麻烦在于更新。

当结构体/参数列表发生了变化,你是重新写一遍注释,还是增量修改。如果想做到增量修改,除了分析源代码之外,还要分析已经存在的注释,所以你的注释也必须遵循一定的规则。

2 个赞

现在看来,用sphinx-doc是个不错的选择,很多open source的项目用这个,直接导出成html,页可以

Doxymacs = Doxygen + Emacs 主要用于 c/c++ 为函数、文件创建注释

我之前也考虑过这个,目前并没有找到一些比较好的方式。

不过我觉得这个似乎可以做的更通用一些,就基于目前的 language server,然后解析想要注释的变量,函数,结构体,定义一些相关的注释规范,然后直接生成。

然而,因为时间原因,一直没有搞。。

doxygen 不能满足楼主吗?