zoukankan      html  css  js  c++  java
  • AX宏Macros运算

    先给个例子

    static void MacrosCalc(Args _args)
    {
        #define.test(10)    
        #defdec.test
        int i;
        ;
        print info(strfmt("%1",#test));
        #defdec.test
        print info(strfmt("%1",#test));
        #defdec.test
        print info(strfmt("%1",#test));
        for(i=1;i<=3;i++)
        {
            #defdec.test
            print info(strfmt("%1",#test));
        }
    }

    按照平常的变量计算逻辑,输出结果应该是

    10,9,8,7,6,5

    但实际的输出结果是

    9,8,7,6,6,6

    这个就有点想不通了,第一句Print之前没有执行defdec,却自减了,而for循环执行了三次defdec,却只减了一次?

    这就是变量和常量的区别了

    我们常用的是变量,导致用变量的思维来处理常量

    正确的常量Macros计算并不是在运行时计算的

    很简单的测试,跟踪一下这个脚本就会发现,defdec根本就跟踪不到,也就是没有运行

    系统对Macros的计算处理是在编译的时候就生成了

    也就是说系统在编译时,见到defdec,就是对#test进行了自减,生成新的常量

  • 相关阅读:
    websocket 工作原理
    Flask中的wtforms使用
    DBUtils
    Django模板语言与视图(view)
    Django之图书管理系统
    Django的安装创建与连接数据库
    pymyspl模块
    多表查询与索引
    表的关系与查询
    mysql的数据类型与表约束
  • 原文地址:https://www.cnblogs.com/rumenren/p/4929235.html
Copyright © 2011-2022 走看看