ctags - 需要帮助从 c 标头中提取函数信息
问题描述
如何从 C 标头中提取函数原型信息?我希望我的数据采用以下格式。
function_name:return_type:signature
我的偏好是ctags。
解决方案
如果您使用的是 Universal-ctags ( https://ctags.io ),则以下命令行用于以以下格式打印信息:
$ u-ctags --language-force=C -x --_xformat="%N:%{typeref}:%{signature}" --kinds-C=p foo.h
这是一个例子:
$ ./ctags --language-force=C -x --_xformat="%N:%{typeref}:%{signature}" --kinds-C=p /usr/include/stdio.h | head
__asprintf:int:(char ** __restrict __ptr,const char * __restrict __fmt,...)
__getdelim:_IO_ssize_t:(char ** __restrict __lineptr,size_t * __restrict __n,int __delimiter,FILE * __restrict __stream)
__isoc99_fscanf:int:(FILE * __restrict __stream,const char * __restrict __format,...)
__isoc99_scanf:int:(const char * __restrict __format,...)
__isoc99_sscanf:int:(const char * __restrict __s,const char * __restrict __format,...)
__isoc99_vfscanf:int:(FILE * __restrict __s,const char * __restrict __format,_G_va_list __arg)
__isoc99_vscanf:int:(const char * __restrict __format,_G_va_list __arg)
__isoc99_vsscanf:int:(const char * __restrict __s,const char * __restrict __format,_G_va_list __arg)
asprintf:int:(char ** __restrict __ptr,const char * __restrict __fmt,...)
clearerr:void:(FILE * __stream)
推荐阅读
- c# - 在应用程序运行时在同一屏幕上显示(弹出)消息框
- javascript - 如何检测是否在 Promise 的 catch 块中
- c - 为什么 ”;” 不用于 for 循环中的 i++。不是所有的东西都必须以“;”结尾吗?
- android - 如何使用 JSON 结构实现登录系统?
- php - 如何使用faker dateTimeBetween 创建虚假事件?
- python - 为什么依赖 numba jitt'ed 函数的排序很重要?
- java - 使用 Java Windowbuilder 的问题
- angular - angular material 2 自定义主题按钮对比
- python - 多个作用域导致授权失败
- npm - 如果将包放在本地,如何避免将包添加到 node_modules