找回密码
 点一下
楼主: Renee

[更正确的表述版][Union Bug]H2I和I2H的新方案~~

[复制链接]
 楼主| 发表于 2007-12-13 17:44:36 | 显示全部楼层
注意所有这些效果只影响“被覆盖的变量”~~即和全局变量同名的局部变量~~

而普通的局部变量和全局变量完全不受影响~你可以在中途插入对其他的变量操作~~都不会受到影响会是对那个udg_i造成影响~~
回复

使用道具 举报

发表于 2007-12-13 18:05:08 | 显示全部楼层
虽然我看得不是很明白,但我觉得,这是一个非常伟大的发现.

放一些代码,谨供娱乐之用
[codes=jass]
globals
          integer x=1
          integer y=2
          integer z=3
endglobals

function testa takes nothing returns nothing
        call BJDebugMsg(I2S(x))
        call BJDebugMsg(I2S(y))
        call BJDebugMsg(I2S(z))
endfunction

function testb takes nothing returns nothing
          local integer x=-1
          local integer y=-2
          local integer z=-3

        call BJDebugMsg(I2S(x))
        call BJDebugMsg(I2S(y))
        call BJDebugMsg(I2S(z))
endfunction

function begin takes nothing returns nothing
        call testa()
        call testb()
        call testa()
endfunction
[/codes]
结果是:



-3
-3
-3


回复

使用道具 举报

发表于 2007-12-13 18:17:48 | 显示全部楼层
为虾米Y也索-3?
回复

使用道具 举报

 楼主| 发表于 2007-12-13 18:20:41 | 显示全部楼层
因为Y确实是-3~~

正确的表述是全部被覆盖变量都会被更改~~我修正过顶楼了~~再看一次吧~~
回复

使用道具 举报

发表于 2007-12-13 18:22:14 | 显示全部楼层
哦  是我走眼了  
赋给本函数内其余被赋值的被覆盖变量  这句话真拗口
回复

使用道具 举报

 楼主| 发表于 2007-12-13 18:32:03 | 显示全部楼层
好吧~~被赋值是多余的~~

直接写“赋给本函数内其余的被覆盖变量”就可以了~~
回复

使用道具 举报

 楼主| 发表于 2007-12-13 18:34:00 | 显示全部楼层
这个人的发现表述中还有许多错误~~

其实给i赋值这句其实根本是不需要的~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 02:07 , Processed in 0.143394 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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