2013-04-05 115 views
2

是否有任何种类的工具只显示给定源文件的函数原型? 我知道Doxygen的是做这样的事情,但我觉得是一个简单的Linux命令,如函数原型过滤器

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

其中作为

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

int main() 
{ 
    print_hello(); 
} 
+0

也许可以用'grep'或类似的工具来完成。 – 2013-04-05 10:55:22

+1

查看相关问题http://stackoverflow.com/questions/1570917/extracting-cc-function-prototypes – user1929959 2013-04-05 10:56:23

+0

很容易为这个 – 2013-04-05 11:01:53

回答

4

显然ctags可以做到这一点!

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

有输出一些额外的东西,但它可以与sedawk处理。 或者cut

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

这正是我期待的!非常感谢!! – jaeyong 2013-04-07 23:31:22

1

许多C文件的格式为你给出的main.c,顶层定义从第1列开始,至少在函数声明行上有一个左括号。

所以,你可以这样做:

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

作为过滤器。