楼主: myccc
1669 7

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

  • 2关注
  • 0粉丝

已卖:501份资源

本科生

66%

还不是VIP/贵宾

-

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

楼主
myccc 发表于 2011-12-6 19:30:48 |AI写论文

+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
拉您进交流群
GMT+8, 2025-12-31 01:45