搜索
发新帖

参数传递问题详解

时间:2012-2-2 14:32 0 1416 | 复制链接 |
先来说说数据传递的几中方式:
1.参数传递:
最常规的一种方式,将数据作为函数参数来传递,这种传递方式是单向的。在调用函数时,系统分配内存将数据复制到形参的内存中,就是实参向形参的数据传递,而在函数体中再对形参的数据修改时并不会改变实参中的数据,所以是单向的。
实体的引用变量会有所不同,详情见下文。
2.函数体中使用全局变量
一般应用在不能调用参数的函数中,这种方式在函数中修改变量数据会影响变量。
3.实体的传递
往往也是以参数传递的方式,将实体的引用变量传递给函数。由于实体本身是全局的,所以对变量的操作会影响实体本身。WE中的实体,如点、单位,对它们的操作,如修改生命值,就会使对应单位生命值改变。主要魔兽底层的单位对象的各个属性也是以全局变量的方式分布,实际是属于第二种情况。至于自定义的对象实体也是一样,对象的基本类型属性也都是全局的,通过编译将对象名作为前缀追加到变量名前,实质也是全局变量。
4.字符串做参数
由于字符串本身的多样性,可以通过解析字符串来获取各种想要的数据。这样可以减少函数的参数数量,或者处理一般参数较难处理的问题。
即使WE本身字符串有着泄露,但其价值仍是不可忽视的。
快速回复 返回列表 返回顶部