candtools 发表于 2010-5-31 18:48:55

请问macro变数mp和%有什么不同?


@macro name=人物






@endmacro

执行
[人物 face=1]
=============================
cond是判断条件真假
=============================
请问mp和%到底有什么不同?
可不可以教我原理。

我本来想把mp.face写成%face。(可是一直执行出错)



两张脸图,名as1和as2

教学网说
mp.face是一个变数           结果face=1
%face是可更改变数           结果face=1

所以两个结果应该都一样....?

所以我把他写成&("as字列"+%变数)

这样理解是错的吗?

pengyu5008 发表于 2010-5-31 22:10:46

这样不知道你会不会明白一些。。。因为自己理解的也不是很好。。所以回答的麻烦了些
kagdoc里的解释是
•mp
 mp 变量在宏定义中指向传入宏指令中的参数的字典(只在宏定义代码中有效)。
%+任意自定义属性名的意思是
◆ 宏的属性
 定义宏的同时,也自己定义了属性的话,就可以使用属性改变执行时的效果了。
 在宏定义中,将属性値以 % 开头,百分号后面的文字就成为一个自定义的属性名。
所以还真没见过%有这直接当变量用的(貌似NS里是用%表示变量的),基本都用来在宏里自定义指令的
kagdoc里给出的例子是:

*start|开始

; -- 宏的定义 --


这是显示一段文字的宏



; -- 宏的使用 --

CountD 发表于 2010-6-2 23:39:17

哪来的教学网啊……
两个都是宏定义里的形式参数,%XXX是KAG形式,mp.XXX是TJS格式。
也就是说假如:
假如你需要对传入的数值进行再计算就选择后者,不需要就选择前者。
楼主的例子里两个都是要再计算然后取值的
;这个是不用计算的,就可以这么写。
页: [1]
查看完整版本: 请问macro变数mp和%有什么不同?