符号表如何在作用域中工作?

问题描述

我知道符号表是如何工作的。但是有一部分我不明白。

我们以这段代码为例:

fn a() {
    // Scope 01
    symbol_01;
    symbol_02;

    for(;;) {
        // Scope 02
        symbol_03;
        symbol_04;

            if(....) {
                // Scope 03
                symbol_05;
                symbol_06;
            }
    }
}
  • symbol_01symbol_02 可以访问整个功能
  • symbol_03symbol_04 不能访问整个函数,但可以访问for循环
  • symbol_05symbol_06 不能访问整个 function 和整个 for 循环,但可以访问 if 声明

如何在编译过程中识别这一点?这背后的理论是什么?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)