使用libclang获取typedef type和name?
如果typedef是匿名结构之类的,我可以得到它们的名称和类型,但是普通的typedef(例如使用libclang获取typedef type和name?,c,typedef,libclang,C,Typedef,Libclang,如果typedef是匿名结构之类的,我可以得到它们的名称和类型,但是普通的typedef(例如typedef int size\t)我只能得到size\t。如何获取“int”类型?您不能这样做。C没有类型的运行时名称,事实上,当您使用typedef作为int时,只有编译器关心类型名称。运行时将无法区分它们。几乎晚了一年,但这是我在搜索这个确切问题时得到的第一个结果,所以这里有一个更好的答案: 在中,该函数将获取类型定义的源类型,并获取类型定义的目标类型。为了澄清,对于生产线: typedef a
typedef int size\t
)我只能得到size\t
。如何获取“int”类型?您不能这样做。C没有类型的运行时名称,事实上,当您使用typedef
作为int
时,只有编译器关心类型名称。运行时将无法区分它们。几乎晚了一年,但这是我在搜索这个确切问题时得到的第一个结果,所以这里有一个更好的答案:
在中,该函数将获取类型定义的源类型,并获取类型定义的目标类型。为了澄清,对于生产线:
typedef a b代码>
clang\u gettypedeclunderlyingtype
返回a
,而clang\u getCursorType
返回b
(两者都作为CXType
)。Libclang应该允许您这样做。它允许您执行运行时无法确定的其他操作。Libclang不编译;它只是以API的形式提供AST输出,这个问题与Lua有什么关系?我使用的是libclang,包装器是用LuaJIT制作的。我想我已经在帖子中添加了这一点,但我想我已经晚了一年才放弃,因为我仍然在解决我的问题。谢谢