楼主: myccc
1456 7

宏调用结果分析 [推广有奖]

  • 2关注
  • 0粉丝

本科生

66%

还不是VIP/贵宾

-

威望
0
论坛币
663 个
通用积分
0
学术水平
3 点
热心指数
6 点
信用等级
1 点
经验
866 点
帖子
74
精华
0
在线时间
112 小时
注册时间
2011-11-18
最后登录
2019-7-24

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
%let Mv=shoes;
%macro PRODUCT(Mv=bicycles);
%let Mv=clothes;
%mend;
%PRODUCT(Mv=tents)
%put Mv is &Mv;
结果是 Mv is shoes;

%let Mv=shoes;
%macro PRODUCT(Mva=bicycles);
%let Mv=clothes;
%put aa;
%mend;
%PRODUCT(Mva=tents)
%put Mv is &Mv;
结果是Mv is clothes;

求结果分析,为何
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:结果分析 Product clothes produc Cycles clothes shoes

沙发
yonghengzhiran 发表于 2011-12-6 19:41:17 |只看作者 |坛友微信交流群
看看

使用道具

藤椅
bobguy 发表于 2011-12-7 09:51:51 |只看作者 |坛友微信交流群
You are confused by a macro variable scope.

A local macro variable lives within its scope. See comments below.

18   %let Mv=shoes;  ***Mv has a global scope;
19   %macro PRODUCT(Mv=bicycles);***Mv has a local scope;
20   %put Mv is &Mv;
21   %mend;
22
23   %PRODUCT(Mv=tents)
Mv is tents
24   %PRODUCT(Mv=clothes)
Mv is clothes
25   %PRODUCT(Mv=cars)
Mv is cars
26
27   %put Mv is &Mv;
Mv is shoes

使用道具

板凳
echotianxia 在职认证  发表于 2011-12-7 10:00:05 |只看作者 |坛友微信交流群
很明显,你把局部宏变量宏程序中的宏变量进行了混淆,建议你将宏变理的运作原理再重新看一遍ADVANCE那本书中讲得很清楚

使用道具

报纸
kittyforever 发表于 2013-1-9 14:40:01 |只看作者 |坛友微信交流群
因为开头定义了全局的宏变量Mv, 因此在%product里再次定义mv时, 将全局mv的值修改为clothes, 打印出的结果为clothes. 在%product中加%local mv; 全局mv的值仍为shoes.
%let Mv=shoes;
%macro PRODUCT;
%local mv;
%let Mv=clothes;
%mend;
%PRODUCT;
%put Mv is &Mv;

使用道具

地板
wangfengxi 发表于 2013-1-9 15:42:18 |只看作者 |坛友微信交流群

RE: 宏调用结果分析

echotianxia 发表于 2011-12-7 10:00
很明显,你把局部宏变量宏程序中的宏变量进行了混淆,建议你将宏变理的运作原理再重新看一遍ADVANCE那本书中 ...
请问ADWANCE 是哪一本,全名是什么?谢谢。

使用道具

7
tangliang0905 发表于 2013-1-10 01:19:54 |只看作者 |坛友微信交流群
I think he want to ask why he obtain the different result after inputting the different value in the marco (1st, MV=XXX global value for MV is still "shoes", 2nd. MVA=XXX the value for MV is chaged to 'clothes'). I am confused too.

使用道具

8
tangliang0905 发表于 2013-1-10 01:47:49 |只看作者 |坛友微信交流群
OK, I got it for this one. Thanks for kittyforever, "在注册列表定义宏变量就相当与在宏程序中写%local语句."

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-5 19:12