0

我正在使用一些具有以下样式的代码:

int
add5 (int x) {
    return x+5;
}

换句话说,函数的返回值类型写在函数名的正上方。正因为如此,ctags不认识这些功能并让我头疼不已。有人知道如何ctags处理这种情况吗?

编辑ctags 可以识别 .c 文件上的函数名,但我需要的是ctags识别.h文件上的函数名。在 .h 文件上,我有以下内容:

int
add5 (int);

并有ctags不承认add5

4

2 回答 2

3

你必须告诉ctags搜索函数的原型。它是通过--<LANG>-kinds选项完成的。

因此,运行以下命令:

ctags --c-kinds=+p *

它会将声明添加到tags文件中,正如您在我的测试输出中看到的那样:

!_TAG_FILE_FORMAT       2       /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED       1       /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert  /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME      Exuberant Ctags //
!_TAG_PROGRAM_URL       http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION   5.8     //
add5    add.h   /^add5 (int);$/;"       p
于 2012-09-28T15:03:19.857 回答
0

在我看来,这听起来像是ctags在识别函数但没有找到它的声明。

事实上,如果你在头文件中创建这个函数:

int
plus(int a,int b) {
    return a+b;
}

ctags可以找到它。

于 2012-09-28T14:59:58.877 回答