IDC:表达式

IDC:表达式
  • 在IDC脚本中,除了 += 这个表达式之外,其他所有的C语言的表达式都可以直接使用

  • 常量的定义跟C语言很类似,但是也有一点点小区别,比如IDC支持以下四种数据转换操作:

    1. long(expr) 转换过程中,浮点会被截断,转换成long型

    2. char(expr)

    3. float(expr)

    4. _int64(expr)

  • 在大部分情况下,在IDC脚本中不需要进行显式的类型转换操作,IDC脚本内部会进行自动的转换,规则如下:

    • 加 操作:

      1. 如果2个操作数都是字符串,直接进行字符串拼接

      2. 如果2个操作数都是对象,直接进行对象的组合(返回一个新对象)

      3. 如果其中一个操作数是浮点,则两个操作数全部转换成浮点来计算

      4. 对于其他的情况,两个操作数全部转换成long型再计算

    • 减/乘/除:

      1. 如果存在浮点操作数,则2个操作数全部转换成浮点再计算

      2. 如果两个操作数都是对象并且操作是减,直接执行减法操作(返回一个新对象)

      3. 对于其他的情况,两个操作数全部转换成long型再计算

    • 比较操作(==, !=, etc):

      1. 如果两个操作数都是字符串,直接进行字符串比较操作

      2. 如果存在浮点操作数,两个操作数都转换成浮点再比较

      3. 其他的情况,都转换成数字再比较

    • 其他操作符

      1. 一律转换成long型进行计算

  • 如果其中一个long型数据是64位的,那么其他的操作数也会转换成64位的

  • 类型转换这个事情还有一个例外的情况:如果一个操作数是字符串,另外一个是0, 那么最后会执行字符串操作,0会被转换成一个空字符串

  • &符号可以用来取变量的引用, 你可以像使用指针那样来使用引用,通过引用来修改原始对象的值。需要注意的是引用变量一旦创建就不能修改了,不像C语言的指针那样,可以指来指去。还是举个例子吧:

    auto x, r;
    r = &x;
    r = 1;   // x is equal to 1 now

    引用的引用还是直接指向原始的对象,例子如下:

    auto x, r1, r2;
    r1 = &x;
    r2 = &r1; // r2 points to x
  • 在给函数传参的时候,默认情况下非对象类型都是值传递的,有的时候,非对象类型通过引用传参是一个不错的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值