需要帮助从c头提取功能信息

时间:2018-06-19 06:08:39

标签: ctags

如何从C头中提取函数原型信息?我希望我的数据采用以下格式。

函数名:return_type:签名

我的偏好是ctags。

1 个答案:

答案 0 :(得分:0)

如果您使用的是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)