SAS中文论坛
标题:
SAS对宏引用符号&的处理机制
[打印本页]
作者:
shiyiming
时间:
2007-10-14 14:13
标题:
SAS对宏引用符号&的处理机制
SAS中通过&name引用一个宏变量name的值,但在实际编程中经常碰到诸如&&name&i甚至&&&的情况,初学者很容易被其迷惑,不过在了解SAS宏处理机制后,这个问题不难理解。
例:
宏变量名 宏变量值
i 1
location beijing
name1 shanghai
name location
SAS宏处理器在读到SAS代码中的&时,会
1 向后继续读一个字符;
2 如果后面的字符也为&,则宏处理器将读到的两个&&并做一个&看待,然后转到步骤1;
3 否则,将后面连续的非&字符(直到空格或&)做为宏变量名字符串。
对于&&name&i,解析流程如下:
&&name&i
|
(&&)name(&i)
|
&name1
|
shanghai
对于&&&name,解析流程为:
&&&name
|
(&&)(&name)
|
&location
|
beijing
对于&&&&name,解析流程为::
&&&&name
|
(&&)(&&)name
|
&&name
|
(&&)name
|
&name
|
alocation
作者:
shiyiming
时间:
2007-10-15 08:31
标题:
Re: SAS对宏引用符号&的处理机制
真是受益匪浅,谢谢shiyiming
若能把资料来源说明就更好了(我好像比较贪),^_^
作者:
shiyiming
时间:
2007-10-18 18:49
标题:
Re: SAS对宏引用符号&的处理机制
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> 清晰易懂.....呵呵......
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2