|
发表于 2007-10-21 19:24:18
|
显示全部楼层
从写法上讲,
call function_name(xxx)只能调用这句话前面声明过的函数.
为安全起见,只能调用一个触发器里面定义过的函数,或是地图开头定义的.
call Execute("function_name")而可以调用后面的.也就是可以调用任意位置声明过的函数.
而且不检查这个函数是否有定义,如果这个函数没必定,编译时不出错,地图运行时出错.
从限制上来看
call function_name(xxx)可以有参数,而call ExecuteFucn("function_name")只能调用一个无参函数
从运行上来看
,call function_name(xxx)是在一个线程里执行,call Execute("function_name")另启一个新的线程.举个简单例子:
[codes=jass]
call function_1(xxx)
call funciton_2(xxx)
[/codes]
假如funciton里面有等待,或是其他的东西,函数运行需要1秒.那么,fucntion_2要等到fucntion_1执行完毕,也就是1秒的时间后,才能运行.
[codes=jass]
call ExecuteFunc(function_1)
call function_2
[/codes]
这里另启一个线程来执行function_1,所以function_2立刻执行,不必等function_1返回. |
|