bud发表于2004-6-1 9:10:00<SPAN lang=ZH-CN style=\"FONT-SIZE: 12pt; FONT-FAMILY: SimSun; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-...
程序设计思路的问题。。。一般在主函数中的变量基本上都能做成局部变量,这点我想你也觉得没问题吧,如果有很多子函数,你不要在子函数中去改变或主函数中的任何变量,
如下面:
主函数:
(defun c:test(/ y) (setq y 4) (add) (princ y) (princ) ) ;子函数: (defun add() (setq y (+ y 10)) ) ;这样是不对的,这样你在设计子函数时就需要考虑主函数,而应该这样。 ;主函数: (defun c:test( / y) (setq y 4) (setq y (add y 10)) (princ y) (princ) ) ;子函数: (defun add(y / a b) (setq a (+ y b)) ) ;这样,你在设计子函数时,完全不用考虑主函数使用了什么变量,我使用参数传递, ;子函数中的变量随便改成什么,都不会影响结果,主函数则只调用其返回值,与子函数 ;使用了什么变量没有关系,而且,这样的子函数还能在别的地方使用,如: (defun c:test( / y z) (setq y 4) (setq y (add y 10)) (setq z (add z 4)) (princ (list y z)) (princ) )