|
根据网上的一篇小论文[1], 我总结了一下: CALL SYMPUT 定义的宏到底是 local 还是 global 呢?
* If defined outside the macro def: Global
* Defined inside the macro def + macro has an empty local symbol table: Global
* Defined inside the macro def + macro has non-empty local symbol table: Local
* Explicitly define them as GLOBAL or LOCAL: It will be the same as what you defined
所以这道题可以解决: 因为 Local Symbol Table 是空的, 所以 SYMPUT 创建的 date 是一个 global 的 macro, 其值为 12SEP2008, 并且把最开始那个也叫做 date 的 global macro 覆盖了.
-
[1] 论文链接加不上, 直接把 URL 写在这里: http://www.lexjansen.com/phuse/2009/po/PO15.pdf
|