提取论点&使用libclang从C函数指针返回类型

时间:2017-11-22 21:23:01

标签: llvm-clang libclang

我使用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属性。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

cursor.type.get_pointee().get_result()
cursor.type.get_pointee().get_canonical().argument_types()