找回密码
 点一下
查看: 760|回复: 3

关于C2I函数求问

[复制链接]
发表于 2012-3-31 16:36:05 | 显示全部楼层 |阅读模式
function C2I takes code c returns integer
return c
return 0
endfunction

返回值具体受什么影响?
比如
function AA takes nothing returns nothing
local integer n=0
set n=n+1
call BJDebugMsg(I2S(n))
endfunction

用C2I(AA)返回的是一串数字
这串数字是地址吗?
但是
改变AA的内容

function AA takes nothing returns nothing
local integer n=0
local integer m
set n=n+1
set m=n
endfunction

再用C2I(AA)返回
依旧是之前的那串数字
我就奇怪了,如果说返回的地址,为何值还是相同?
难道声明了的函数开辟的内存地址(内存大小?)是固定的吗?
但是如果在添加一个新触发,值又不同了
我实在不解,也许是一直来学习return BUG都存在着对它的误解,还请高人指点~
发表于 2012-3-31 21:45:21 | 显示全部楼层
RB返回的是句柄(handle)

值的改变应该跟函数的位置有关,额。。我说的位置是:
比如:
创建特效A
然后不管这个特效A是什么视觉效果其句柄都是不会变的

但是如果前面再加一个
创建特效B
创建特效A
那么A的句柄就变了,这里A的句柄值是B的句柄+1

函数同理,LZ可以弄两个函数(比如叫A和B),先申明A再申明B,查看下结果,然后颠倒位置后再看下结果~
PS:函数的句柄不一定是前一个函数的句柄+1(至少我测的时候不是,不过我也没详细测……)
回复

使用道具 举报

发表于 2012-4-1 06:48:38 | 显示全部楼层
在AA前面加个别函数,就回变了

内容来自[手机版]
回复

使用道具 举报

发表于 2012-4-2 18:27:22 | 显示全部楼层
返回值受行数影响
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-10-6 11:59 , Processed in 0.052547 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表