我使用libclang(API版本0.43)来解析C头文件。有没有办法提取参数&返回函数指针定义中的类型,例如
int (*my_add_fn)(int, int);
我可以将光标移到my_add_fn
,并且可以看到一些信息(右侧打印语句的输出:
print(cursor.spelling) # my_add_fn
print(cursor.type.kind) # TypeKind.POINTER
print(cursor.type.get_pointee().kind) # TypeKind.UNEXPOSED
print(cursor.type.get_pointee().spelling) # int (int, int)
但是我无法获得args的迭代器(就像我可以用于常规函数原型),而且我宁愿不使用字符串修改spelling
属性。
有什么想法吗?
答案 0 :(得分:0)
cursor.type.get_pointee().get_result()
cursor.type.get_pointee().get_canonical().argument_types()