动态范围和静态范围

时间:2016-05-04 22:07:35

标签: dynamic static scoping

enter image description here

我不明白,任何人都可以回答这个问题并在可能的情况下解释一下吗?

1 个答案:

答案 0 :(得分:0)

这很有意思,因为我自己正在研究这个以递归方式走树的程序。根据您的问题,我发现以下内容是最简洁明了的演示: https://msujaws.wordpress.com/2011/05/03/static-vs-dynamic-scoping/

完全相同的代码会产生不同的结果。关键在于bar方法,其中b设置为2.在静态作用域中,int在方法中声明保持在该方法的本地。当调用foo时,在bar中声明的int b不在范围内,但是更高级别的const b是并且两次都被使用。

在动态作用域中,解析了调用链,因此在调用foo时使用了bar中的int b。