rebie 发表于 2014-05-31

关于超级宏变量某些奇怪的使用方式

基于超级宏变量赋值和逻辑判断的特性,引申出一些特别不合逻辑但是有效的使用方法
在宏的变量赋值与逻辑中:
1.一切不是false的在逻辑处理时都为true.
/if
        /print
/end
此时将会print出helloworld的语句
2.当表达式为true,将会把最后一个量装入保存的变量中.
/var v_test
/print
此时将会print出2的语句

综上将讲解的语句是下面这一句.
/var [!var,fun1(var);fun2(var)] var

fun2(var) 应有结构为
fun3() (<,>,=,~=) var
前后顺序由保存变量决定
举例1中保存变量为 切换目标
举例2中保存变量为tid

举例1:
/var [!v_切换目标,nowtime+0.5;tnodead,nowtime>v_切换目标] v_切换目标
等效于
if [!v_切换目标]
        /var v_切换目标
/else
        /var v_切换目标
/end
在宏的逻辑中,当(tnodead,nowtime>v_切换目标)为true,将会把最后一个量装入保存的变量中,
以上表达式等效于
全式拆解为
if [!v_切换目标]
        /var v_切换目标
/else
        /if
                /var v_切换目标
        /else
                /var v_切换目标
        /end
/end
等效处理方案
if
        /var v_切目标
        /var v_切换目标
/else
        /var v_切目标
/end
举例2:
/var [!v_切换目标,tid;v_切换目标=tid] v_切换目标
此式等效处理方案:
if
                /var v_没换目标
        /else
                /var v_没换目标
        /else
/end
/var v_切换目标

无色幽明 发表于 2014-05-31

碉堡了

永远的言秀 发表于 2014-05-31

不留沙发在人间。。。。咦,沙发没了
页: [1]
查看完整版本: 关于超级宏变量某些奇怪的使用方式