明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: BenjaminXM

[提问] 关于全局变量的定义问题

[复制链接]
 楼主| 发表于 2015-9-5 01:25:06 | 显示全部楼层
edata 发表于 2015-9-4 22:59
函数调用的时候 (sk_add a b c)其中abc必须存在(不在乎是否有值),不然不能调用,(sk_add nil nil nil)都 ...

谢谢回答,已经明白了,谢谢~
发表于 2015-9-5 07:33:58 来自手机 | 显示全部楼层
BenjaminXM 发表于 2015-9-5 01:16
(add10 a)和(volume 3 2),写错了,谢谢更正。

下面附的代码有点疑问:

因为大多数函数我都是全局函数,而函数名或者全局变量如果同名就会被后面加载的覆盖,因此一般全局函数名或全局变量我都加个人前缀,防止冲突被覆盖,另外也是个人标签,根据实际情况自己定义。
关于c变量,c变量实际上是局部变量,作用于tt函数体内,而tt调用了子函数,子函数未声明c为局部变量,因此在子函数范围内为全局变量,因此c值会变更,但是仅仅作用于tt范围之内。
而不是你说的c变成了全局变量,c其实还是局部变量,对于tt来说。
 楼主| 发表于 2015-9-5 07:47:07 | 显示全部楼层
edata 发表于 2015-9-5 07:33
因为大多数函数我都是全局函数,而函数名或者全局变量如果同名就会被后面加载的覆盖,因此一般全局函数名 ...

谢谢~
已经明白了。
发表于 2015-9-13 19:23:34 | 显示全部楼层
llsheng_73 发表于 2015-9-4 23:49
(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
这样也是可以调用的吧。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2015-9-13 19:38:04 | 显示全部楼层
关于入口参数,我是这样理解的:
  将函数需要的参数按顺序和适应的数据类型放置进去,当然也有定义了入口参数而函数内部没有使用到的情况,比如:
(setq aa 1 bb 2)
(defun num_non (a b f)
  (print (+ a b))
  (princ)
)
这种情况也必须将f这个参数传递进去,不然会造成参数太少,从而出错,当然,传递进去的是什么都可以随便写个就行

发表于 2015-9-13 20:19:37 | 显示全部楼层
重慶崽兒 发表于 2015-9-13 19:23
73哥  你这句话 我没怎么明白
“你不可能先通过(setq r 10 h 5)然后直接(volumn)....这样会因为参数不足 ...

那里是说不给他参数,就比如你这里,不可能因为a b都已经赋值了就直接(num_non)希望他会进行处理
发表于 2015-9-14 11:28:07 | 显示全部楼层
BenjaminXM 发表于 2015-9-5 07:47
谢谢~
已经明白了。

http://bbs.mjtd.com/thread-109824-1-1.html
 楼主| 发表于 2015-9-14 12:46:02 | 显示全部楼层
ll_j 发表于 2015-9-14 11:28
http://bbs.mjtd.com/thread-109824-1-1.html

谢谢你分享的资料。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-21 16:14 , Processed in 0.244952 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表