2013-04-05 77 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 

作爲過濾器。