找回密码
 点一下
查看: 1083|回复: 10

for VS ifthen, for必须封装!

[复制链接]
发表于 2017-9-12 18:16:10 | 显示全部楼层 |阅读模式
本帖最后由 东方油瓶 于 2017-9-12 18:18 编辑

依然是前辈们玩烂的东西。
但是for这个东西...比起if then,可是坑爹多了啊。

_E7]X)1M4)%]UJPW$$TW$AU.png


2.png

这仅仅是执行的部分,可以看到自带的 for是多么的肥胖不堪
然而这还不是最肥胖的地方
R@HK)I2~V_9P)Q}9`QVMO.png

每一个for 语句,都会多创建 2 个整数变量在函数中,我大for居然被用成这样我也是醉了啊→_→

TA573VLATGZOO)O(SE4IEGP.png

这才是真正的for,每多一句这样的for,您的代码就会少2个局部变量以及3处多余的运算,心动不如行动-v-

 楼主| 发表于 2017-9-12 18:34:03 | 显示全部楼层
学会这一招可以弄什么鬼..

为单位的每一个行为 behavior做动作
为单位的每一个武器 weapon 做动作
为单位的每一个技能...额好像不行~哈哈

点评

技能也是可以的,只要读取数据模板就行。  发表于 2017-9-12 21:27
回复

使用道具 举报

 楼主| 发表于 2017-9-12 19:02:14 | 显示全部楼层
对了...记得勾选循环,不然生成的脚本中不会编译写在其中的 break、continue等中断语句..
回复

使用道具 举报

发表于 2017-9-12 21:56:42 | 显示全部楼层
新创建的变量是为了防止用于比较的变量被意外更改,多使用的变量对于整个机器的影响微不足道,同时有1000个运行也是如此。

点评

每0.0625秒运行一次,执行10次A函数,A函数中有6个for。 6*2*10= 120/0.0625 = 1920次局部变量声明。 再加上执行的变量赋值、比较,这个不是1000,做的越多影响越大。 还有就是分配内存的问题,整个机器的内存  详情 回复 发表于 2017-9-13 00:09
条件函数、动作函数,如果多次套用,影响还是有;主要是完全没必要的浪费。  发表于 2017-9-13 00:03
10w?  详情 回复 发表于 2017-9-13 00:00
回复

使用道具 举报

 楼主| 发表于 2017-9-13 00:00:44 | 显示全部楼层
priceles 发表于 2017-9-12 21:56
新创建的变量是为了防止用于比较的变量被意外更改,多使用的变量对于整个机器的影响微不足道,同时有1000个 ...

10w?
回复

使用道具 举报

 楼主| 发表于 2017-9-13 00:09:30 | 显示全部楼层
priceles 发表于 2017-9-12 21:56
新创建的变量是为了防止用于比较的变量被意外更改,多使用的变量对于整个机器的影响微不足道,同时有1000个 ...

每0.0625秒运行一次,执行10次A函数,A函数中有6个for。

6*2*10= 120/0.0625 = 1920次局部变量声明。
再加上执行的变量赋值、比较,这个不是1000,做的越多影响越大。
还有就是分配内存的问题,整个机器的内存是非常大的,可是SC2会分多少?
当然,用C基本不用考虑这些问题
回复

使用道具 举报

发表于 2017-9-13 05:19:03 来自手机 | 显示全部楼层
实际操作可以避免的,例如新建一个线程处理一批动作,在新建一个处理另外一个,就可以达到0.065秒做n件事
回复

使用道具 举报

发表于 2017-9-16 13:54:43 | 显示全部楼层
本帖最后由 yxxiaobin 于 2017-9-16 13:56 编辑

如果有强迫症,可以自己定义,确实可以做到更简洁。普通人的话没必要,几千个变量对于现在的电脑来说还不算什么问题。宏的意义其实不在于减少为每个整数之类的循环的预算量,而是可以自由的定义自己的通用函数,比如楼主提到的,为每个对话框项这种。

点评

+1  发表于 2017-9-17 16:37
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 15:43 , Processed in 0.174736 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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