【问题标题】:How to identify variables that are declared in a function body in clang如何识别在clang函数体中声明的变量
【发布时间】:2016-07-05 12:16:58
【问题描述】:

我已经用 clang 实现了一个 AST 递归访问器,我想区分变量声明。我想知道变量声明是全局的,或者变量声明是否带有函数体。两者都会为我完成这项工作。 有什么想法吗?

谢谢。

【问题讨论】:

    标签: c++ clang abstract-syntax-tree llvm-clang


    【解决方案1】:

    您可以在您的 AST 访问者中访问 VarDecl,然后您可能想要使用来自 VarDecl 的 Api hereisLocalVarDecl()isLocalVarDeclOrParm()isFunctionOrMethodVarDecl()isStaticDataMember()hasLocalStorage()hasGlobalStorage() 等函数.

    【讨论】:

    • 函数 hasLocalStorage() 可以识别在本地范围内声明的变量。另一方面,函数 hasGlobalStorage() 可以识别在全局范围内声明的变量。谢谢你的回答。
    • 我也是这么想的,但由于我自己从未使用过它们,所以我也添加了其他可能的选项。欢迎您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2022-11-30
    相关资源
    最近更新 更多