vivienluo 发表于 2014-12-30 00:17:50

第5课:Skill函数定义及参数传递

如果你觉得本教程对你有帮助,欢迎大家转载到各大论坛博客。转载还请注明出处哦{:soso_e113:}。老罗感谢大家一直以来的支持!{:soso_e100:}

上节课只是简单的讲解了函数的概念,不知道大家对函数理解得怎么样了。如果学习过程中有什么问题,各位同学可以直接发帖互相讨论,以便其他人遇到相同的问题可以参考解决。我一个人的时间有限,不能对每个人遇到的问题都一一解答,还忘理解。所以大家遇到问题还是多多发表求助。
1.函数的定义方法
上节课学习了函数的概念,相信大家对函数都有了基本的理解。之前几节课程里面使用了defun来定义一个函数。在Skill中,还可以使用procedure来定义函数。
大家可能都注意到了,使用defun定义的话,在函数名后面必须要有一个空格,而使用procedure定义的话,则不能有空格,这是两种方式定义的区别。
例如使用defun定义一个函数MyFunc:


defun( MyFunc ()
      nil
);end defun

等同于使用procedure定义,注意procedure函数名后面没有空格。


procedure( MyFunc()
      nil
);end procedure

假如defun定义的函数名后没有跟空格的话,allegro会提以下的报错:

E- *Error* defun: too few arguments (at least 3 expected, 2 given) - (MyFunc nil)
E- *Error* load: error while loading file - "F:/MySkill/funcDef.il" at line 3


假如使用procedure定义的函数名后跟了空格的话,allegro也会提示相应的报错
E- *Error* procedure: illegal formal list - MyFunc
E- *Error* load: error while loading file - "F:/MySkill/funcDef.il" at line 2


各位同学可以将以上的代码写到一个il文件,分别测试下两者函数定义的区别,然后使用Skill Debuger调试工具加载,看是否加载成功。

注:大家以后可根据自己习惯选择defun或者procedure定义,两者唯一的区别就是函数名后面是否跟空格。

2.函数的结构
**** Hidden Message *****

如果你觉得本教程对你有帮助,欢迎大家转载到各大论坛博客。转载还请注明出处哦{:soso_e113:}。老罗感谢大家一直以来的支持!{:soso_e100:}

AndyY 发表于 2015-3-10 20:16:44

提交作业,谢谢罗老师~~

sujuanyu888 发表于 2015-1-20 17:00:15

{:soso_e198:}作业。问题:axlUIConfirm这个命令是不是没有办法带参数?




jelly_770 发表于 2015-2-3 08:35:59

本帖最后由 jelly_770 于 2015-2-3 14:55 编辑

落下好多课程,补课来了

linuxfor 发表于 2014-12-31 00:05:02

本帖最后由 linuxfor 于 2014-12-31 11:49 编辑

又要开始新的学习了,好兴奋!!!
下面是我遇到的问题:见第二张图
这是因为在这个代码中,见第一张图缺少了小括号的缘故,只要将上去的话就会加载成功,正常测试功能了见第三张图
第四张是作业完成代码,及测试结果显示。。。
第五张是测试方式



PLCC 发表于 2014-12-30 01:54:52

老师,貌似反了。   自己试了下,defun没有空格成功加载。有空格报错      
E- *Error* defun: too few arguments (at least 3 expected, 1 given) - ((MyFunc nil nil))
E- *Error* load: error while loading file - "E:/tisheng/myskill/test.IL"

vivienluo 发表于 2014-12-30 07:45:09

PLCC 发表于 2014-12-30 01:54
老师,貌似反了。   自己试了下,defun没有空格成功加载。有空格报错      
E- *Error* defun: too few...

不会哦,把你代码贴上看看。

stevenzhu 发表于 2014-12-30 10:42:32

学习,学习~~~~~~

PLCC 发表于 2014-12-30 14:52:07

vivienluo 发表于 2014-12-30 07:45
不会哦,把你代码贴上看看。

抱歉,是我弄错了。。。。

defir 发表于 2014-12-30 20:55:15

来学习了,感谢罗老师

aloneweiwei 发表于 2014-12-30 22:03:25

来上课咯~不过作业估计得元旦回来交了。。得到公司搞

winter_liu 发表于 2014-12-30 22:19:21

继续学习。。。。。

stevenzhu 发表于 2014-12-30 22:44:23

感谢罗老师,但是看不了帖子,刚才还可以的

loney 发表于 2014-12-30 23:16:52

谢谢罗老师,学习了。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 第5课:Skill函数定义及参数传递