函数调用的时候 (sk_add a b c)其中abc必须存在(不在乎是否有值),不然不能调用,(sk_add nil nil nil)都 ...
谢谢回答,已经明白了,谢谢~ BenjaminXM 发表于 2015-9-5 01:16
(add10 a)和(volume 3 2),写错了,谢谢更正。
下面附的代码有点疑问:
因为大多数函数我都是全局函数,而函数名或者全局变量如果同名就会被后面加载的覆盖,因此一般全局函数名或全局变量我都加个人前缀,防止冲突被覆盖,另外也是个人标签,根据实际情况自己定义。
关于c变量,c变量实际上是局部变量,作用于tt函数体内,而tt调用了子函数,子函数未声明c为局部变量,因此在子函数范围内为全局变量,因此c值会变更,但是仅仅作用于tt范围之内。
而不是你说的c变成了全局变量,c其实还是局部变量,对于tt来说。 edata 发表于 2015-9-5 07:33 static/image/common/back.gif
因为大多数函数我都是全局函数,而函数名或者全局变量如果同名就会被后面加载的覆盖,因此一般全局函数名 ...
谢谢~
已经明白了。 llsheng_73 发表于 2015-9-4 23:49 static/image/common/back.gif
(defun volumn(r h / v)
...)
这里只有v是局部变量,r,h都不是全局变量,它们是这个函数的入口参数 ...
73哥你这句话 我没怎么明白
“你不可能先通过(setq r 10 h 5)然后直接(volumn)....这样会因为参数不足而无法实现函数调用”
(setq a 1 b 2)
(defun num_non (a b / a b)
(print (+ a b))
(princ)
)
(num_non a b)
返回:3
这样也是可以调用的吧。
关于入口参数,我是这样理解的:
将函数需要的参数按顺序和适应的数据类型放置进去,当然也有定义了入口参数而函数内部没有使用到的情况,比如:
(setq aa 1 bb 2)
(defun num_non (a b f)
(print (+ a b))
(princ)
)
这种情况也必须将f这个参数传递进去,不然会造成参数太少,从而出错,当然,传递进去的是什么都可以随便写个就行
重慶崽兒 发表于 2015-9-13 19:23 static/image/common/back.gif
73哥你这句话 我没怎么明白
“你不可能先通过(setq r 10 h 5)然后直接(volumn)....这样会因为参数不足 ...
那里是说不给他参数,就比如你这里,不可能因为a b都已经赋值了就直接(num_non)希望他会进行处理 BenjaminXM 发表于 2015-9-5 07:47 static/image/common/back.gif
谢谢~
已经明白了。
http://bbs.mjtd.com/thread-109824-1-1.html ll_j 发表于 2015-9-14 11:28 static/image/common/back.gif
http://bbs.mjtd.com/thread-109824-1-1.html
谢谢你分享的资料。
页:
1
[2]