%let Mv=shoes;*全局宏变量;
%put Mv1 is &Mv;
%macro PRODUCT(Mv=bicycles);*局部宏变量(参数中定义的局部宏变量);
%put Mv2 is &Mv;
%let Mv=clothes;*局部宏变量(macro程序体内定义的宏变量);
%put Mv3 is &Mv;
%mend;
%product(Mv=tents);
%put Mv4 is &Mv;*全局宏变量;
Mv1 is shoes
Mv2 is tents
Mv3 is clothes
Mv4 is shoes
%let a =cat;*全局宏变量;
%put a1 is &a;
%macro animal;
%put a2 is &a;
%let a = dog;*注意:此处实际上仍为全局变量,只是给全局宏变量重新赋值而已,全局变量在宏内赋值,赋值能成功,且该变量依然为全局变量;
%put a3 is &a;
%mend;
%animal;
%put a4 is &a;*全局变量,打印重新赋值后的值;