找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 727|回复: 7

[求助] [求助]:关于子函数中的局部变量?

[复制链接]
发表于 2005-11-18 12:49:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
先设定,情况1:子函数被定义在主函数之内,并且子函数名被定义为局部变量。情况2:子函数被定义在主函数之外。
问题1,若子函数有形参,像defun (a / b),在两种情况下怎样将a定义为局部变量?
问题2,若子函数没有形参,直接沿用主函数变量,那是不是在主函数中将变量定义为局部变量即可?我还没想明白问题2是否也有情况1和情况2。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-18 13:10:08 | 显示全部楼层
太绕口了,不懂!呵呵……
写个实际的程序来讨论吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-18 13:34:10 | 显示全部楼层
简单说就是如果我把子函数定义在主程序之内,并将子函数名定义为局部变量,就等同于把子函数中的形参也定义为了局部变量?
(defun c:xxx (/ a e f  )
   (defun a (b c / d)...)
  (a e f)
)
定义了阿a,就相当于定义了a,b,c?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-18 13:42:42 | 显示全部楼层
最初由 nuance 发布
[B]简单说就是如果我把子函数定义在主程序之内,并将子函数名定义为局部变量,就等同于把子函数中的形参也定义为了局部变量?
(defun c:xxx (/ a e f  )
   (defun a (b c / d)...)
  (a e f)
)
定义了阿a,就相当... [/B]

那就真乱套了!
还是写个比较完整的实例试试吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-18 23:46:50 | 显示全部楼层
最初由 nuance 发布
[B]简单说就是如果我把子函数定义在主程序之内,并将子函数名定义为局部变量,就等同于把子函数中的形参也定义为了局部变量?
(defun c:xxx (/ a e f  )
   (defun a (b c / d)...)
  (a e f)
)
定义了阿a,就相当... [/B]


不对!
不管是主函数,子函数,行参都必须放在/之后
主函数 / 之前及子函数 / 之前且未被主函数放到 / 之后的参数的都是全局变量
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2005-11-18 23:51:48 | 显示全部楼层
建议你把所有的子程序都放在主程序外,作为研究可以,但实际用的时候还是规范些好,便于调试和维护。
*error* 也可以放在主程序外, 在主程序中用(setq *error* err) 就行了;;err是你自己的错误处理函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-21 09:12:54 | 显示全部楼层
我是习惯将子函数定义在主函数之内,这样可以避免考虑函数重名的问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-22 08:33:32 | 显示全部楼层
将子函数可以定义在主函数之内,可以定义在主函数之外。这两种方法本人都经常用的,但应避免考虑函数重名的问题,这样可以让程序尽量少出一些错
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 22:13 , Processed in 0.252183 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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