我可以得到的名称和类型的类型,如果他们是匿名结构等,但正常的类型(如typedef int size_t
)我只能得到size_t
。我怎样才能得到类型"int"?
几乎晚了一年,但这是我搜索这个确切问题时出现的第一个结果,所以这里有一个希望更好的答案:
在clang-c/Index.h中,clang_getTypedefDeclUnderlyingType函数将从中获得类型定义的类型,clang_getCursorType将获得类型定义到的类型。为了澄清,对于这行:
typedef a b;
clang_getTypedefDeclUnderlyingType
返回a
, clang_getCursorType
返回b
(都作为CXType
)。
你不能那样做。C没有类型的运行时名称,事实上,当您将typedef
设置为int
时,只有编译器关心类型名称。运行时将无法区分它们