问题1:
%put &value;
%let Mv=shoes;
%macro PRODUCT(Mv=bicycles);
%let Mv=clothes;
%put &Mv;
%mend;
%PRODUCT(Mv=tents)
%put Mv is &Mv;
这题输出的是shoes,说是因为macro里面的let建立的是局部宏变量,只在这个宏内有效。但为什么下面的code去掉了两个括号就输出的是clothes呢?这两个括号难道不是初始值和定义的值么?和局部/全局变量有关系?
%let Mv=shoes;
%macro PRODUCT;
%let Mv=clothes;
%put &Mv;
%mend;
%PRODUCT
%put Mv is &Mv;
问题2:
%macro CHECK(Num=4);
%let Result=%eval(&Num gt 5);
%put Result is &result;
%mend;
%check(Num=10)
这个code输出的是1,因为10大于5。但为什么变成5.1 后就输出的是0呢?而如果num=11,gt10.1,又输出的是1呢?这个code是怎么进行比大小的?
谢谢!!奋战advance中!