这是SAS ADV50题之20题,我执行了代码后稍作变化,出现了不解情况,还望高手讲解:
一、原题:
%let a=cat;
%macro animal;
%let a=dog;
%mend;
%animal
%put a is &a;
运行结果:a is dog
二、变化1(animal宏上增加了入参,名称同全局变量a)
%let a=cat;
%macro animal(a);
%let a=dog;
%mend;
%animal(c);
%put a is &a;
运行结果:a is cat
三、变化2(animal宏上增加了入参,名称不同全局变量a,取名f)
%let a=cat;
%macro animal(f);
%let a=dog;
%mend;
%animal(c);
%put a is &a;
运行结果:a is dog
疑问:为什么有没有参数以及参数名是不是与全局变量名一致,结果不一样。