You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ctags同时收录C函数的声明与定义?

解决C代码库中ctags同时收录函数声明与定义的问题

针对Exuberant Ctags 5.9~svn20110310

该版本默认仅生成函数定义的标签,要同时收录声明,需在生成tags时指定C语言的标签类型:

ctags -R --c-kinds=+p *

其中--c-kinds=+p表示在默认标签类型基础上,添加**函数原型(声明)**的标签。

针对Universal Ctags

你遇到的参数换行时识别异常,是因为默认解析规则对多行函数签名的支持不足,同时需要明确开启声明标签的收录:

1. 单次命令解决

直接执行带参数的命令:

ctags -R --c-kinds=+p --extras=+q *
  • --c-kinds=+p:强制收录函数声明
  • --extras=+q:增强对复杂函数定义的识别,包括参数换行的情况

2. 配置文件持久化

如果不想每次输入参数,可以在项目根目录创建.ctags文件,写入以下内容:

--c-kinds=+p
--extras=+q

之后只需执行ctags -R *,就会自动加载配置生成包含声明和定义的tags文件。

验证结果

生成tags后,用以下命令检查目标函数的条目:

grep "目标函数名" tags

正常情况下会看到两条记录:一条来自头文件的声明,一条来自源文件的定义。

内容的提问来源于stack exchange,提问作者Syed N Waris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:22:07