楼主: yzzhang
11315 6

[原创博文] 请教一下宏编译和执行的问题,%str和%quote的区别? [推广有奖]

  • 1关注
  • 0粉丝

已卖:93份资源

博士生

52%

还不是VIP/贵宾

-

威望
0
论坛币
1979 个
通用积分
2.9500
学术水平
2 点
热心指数
1 点
信用等级
0 点
经验
569 点
帖子
116
精华
0
在线时间
459 小时
注册时间
2009-2-17
最后登录
2025-12-1

楼主
yzzhang 发表于 2010-5-29 11:34:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
对于数据步和过程步的编译和执行可以理解,但是对宏的编译和执行一直搞不清?

%str和%quote好像说一个是在编译时起作用,一个是运行时起作用,但是没弄明白,望版上牛人指点迷津!多谢了!
二维码

扫码加我 拉你入群

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

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

关键词:Quote 指点迷津

回帖推荐

yatming 发表于3楼  查看完整内容

macro 定义提交之后,编译过程会检查语法,然后编译,虽然也不是很清楚macro编译除了转码还会做什么。 但%str确实是在编译中work,所以当macro被调用时,进word scanner以及macro processor的时候,input的并不是函数%str以及其参数,而是其结果,即在compilation中function %str计算得到的result,但这个结果的实体到底是什么,进word sanner和macro processor的是什么,只有sas自己知道了,或许仍然外包了其他特征而不是直接还原 ...

本帖被以下文库推荐

沙发
gssdzc 在职认证  发表于 2010-5-29 12:04:04
ding .........

藤椅
yatming 发表于 2010-5-30 01:13:53
macro 定义提交之后,编译过程会检查语法,然后编译,虽然也不是很清楚macro编译除了转码还会做什么。
但%str确实是在编译中work,所以当macro被调用时,进word scanner以及macro processor的时候,input的并不是函数%str以及其参数,而是其结果,即在compilation中function %str计算得到的result,但这个结果的实体到底是什么,进word sanner和macro processor的是什么,只有sas自己知道了,或许仍然外包了其他特征而不是直接还原的字符串,否则%str就白用了。
%quote则应该是编译时候就对其转码,而调用时,macro processor再对其处理。
已有 1 人评分热心指数 收起 理由
crackman + 1 我很赞同

总评分: 热心指数 + 1   查看全部评分

板凳
bobguy 发表于 2010-5-30 03:48:25
yzzhang 发表于 2010-5-29 11:34
对于数据步和过程步的编译和执行可以理解,但是对宏的编译和执行一直搞不清?

%str和%quote好像说一个是在编译时起作用,一个是运行时起作用,但是没弄明白,望版上牛人指点迷津!多谢了!
Here is a simple example to illustrated the difference.
The %str will hide the resoled value of op (=) in compiling process but not in executing process.

The %quote will hide it in both process -- that results in excution error.


%macro test(op);
   %if 7 %str(&op) 6 %then %put 1;
   %else %put 0;
%mend;

%test(=)

%macro test2(op);
   %if 7 %quote(&op) 7 %then %put 1;
   %else %put 0;
%mend;

%test2(=)
已有 4 人评分学术水平 热心指数 信用等级 收起 理由
datousang + 1 + 1 + 1 精彩帖子
灯小登 + 1 + 1 + 1 精彩帖子
木叶知秋 + 1 + 1 + 1 精彩帖子
crackman + 1 + 1 精彩帖子

总评分: 学术水平 + 4  热心指数 + 4  信用等级 + 3   查看全部评分

报纸
yzzhang 发表于 2010-5-30 08:48:29
多谢yatming bobguy,现在有点明白了!^_^

地板
shadowaver 在职认证  发表于 2014-3-20 22:27:33
mark~
shadowaver@163.com
QQ 540722048

7
灯小登 在职认证  发表于 2017-4-1 10:18:04
bobguy 发表于 2010-5-30 03:48
Here is a simple example to illustrated the difference.
The %str will hide the resoled value of ...
So is there no difference in compiling process?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 13:39