【问题标题】:Function prototype filters [duplicate]函数原型过滤器 [重复]
【发布时间】:2013-04-05 10:52:55
【问题描述】:

是否有任何工具只显示给定源文件的函数原型? 我知道 Doxygen 正在做这样的事情,但我发现的是一个简单的 Linux 命令,例如

$ filter-function-prototypes main.c
1: print_hello()
2: main()

main.c 的格式为

#include <stdio.h>
void print_hello() {
    printf("hello, world\n");
}

int main()
{
    print_hello();
}

【问题讨论】:

  • 可以使用grep 或类似工具完成。
  • 很容易为此编写一个shell脚本
  • cproto?编写一个 shell 脚本来正确地做到这一点并不容易(尽管你可以通过一个 shell 脚本获得大约 80% 的功能)。

标签: c function


【解决方案1】:

显然ctags 可以做到!

ctags -x --c-kinds=f main.c

输出中有一些额外的内容,但可以使用sedawk 处理。 或cut

ctags -x --c-kinds=f cards.c | cut -c 51-

【讨论】:

  • 这正是我想要的!非常感谢!!
【解决方案2】:

许多 C 文件的格式与您的一样,顶级定义从第 1 列开始,并且在函数声明行上至少有一个左括号。

所以你可以使用这个:

egrep -i '^[a-z].*\(' main.c

作为您的过滤器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多