大漠1262670234 发表于 2015-9-5 14:49:20

子程序调用出错,求助

如题:有多个子程序需要调用,别的都可以运行,唯独有一个子程序调用出错提示:错误: no function definition:ass
如果单独把子程序写一个lisp调用,运行正常,然后再运行多个子程序的主程序,该错误提示就没了,请问是怎么回事?

edata 发表于 2015-9-5 16:59:47

子程序需要先加载,如果子程序在主程序内部,那么先写子程序,如果是在外部,同一个文件,一般加载主程序的时候会先加载子程序。

大漠1262670234 发表于 2015-9-5 18:09:21

edata 发表于 2015-9-5 16:59 static/image/common/back.gif
子程序需要先加载,如果子程序在主程序内部,那么先写子程序,如果是在外部,同一个文件,一般加载主程序的 ...

问题已经解决,多谢指点。

llsheng_73 发表于 2015-9-5 18:11:19

本帖最后由 llsheng_73 于 2015-9-5 18:16 编辑

出现这种问题一般不外两种情况:
1.外部语句调用函数先于函数定义(这种情况在加载时就会出现问题)
(setq a(ass))
....
(defun ass()
   ...)
2.在范围外调用局部函数(这种情况要运行到这个地方才会出问题)
(defun c:tt()
...
       (ass)
...)
(defun a(/ ass)
   (defun ass()
    ...)
...)

重慶崽兒 发表于 2015-9-5 22:53:26

楼上两位正解 ,估计楼主是没加载子程序

大漠1262670234 发表于 2015-9-9 11:59:26

问题已解决多谢指点
页: [1]
查看完整版本: 子程序调用出错,求助