如何从C头中提取函数原型信息?我希望我的数据采用以下格式。
函数名:return_type:签名
我的偏好是ctags。
答案 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)