作用域
作用域是指,特定绑定的有限范围。
作用域规则分为静态作用域规则和动态作用域规则。前者是指作用域决定于编译时,后者为运行时。
静态作用域规则规定绑定关系是从定义时的环境中解析,动态规则则规定是从运行环境中解析。
int x = 0;
int f() { return x; }
int g() { int x = 1; return f(); }
int f() { return x; }
int g() { int x = 1; return f(); }
上例中,如果采用静态作用域调用g将返回0,如果采用动态作用域则返回1。