找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2412|回复: 5

[求助] [求助]:函数定义时函数名可以作为局部变量吗?

[复制链接]
发表于 2006-8-4 15:40:38 | 显示全部楼层 |阅读模式

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

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

×
(defun test( /  mis get) ;;get 是函数名
...
(get)
...



(defun get()
...
)


编译时,出现提示:警告:函数用做局部变量 get .

双击,警告定位在(get).

请问,这是什么意思,可能引起错误吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-8-4 16:47:50 | 显示全部楼层
可以这样做,虽然出现警告,但不会引起错误.但既然把函数名作为局部变量,一般都在主程序内定义该函数,而你把它放在了外面,也不知行不行.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-8-5 18:10:25 | 显示全部楼层
如果是自定义函数完全可以的!~~让它警告去吧不用理!~
呵呵!!可是get可是和系统自己带的哦!还是不要去碰它为好!·!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2006-8-6 06:12:08 | 显示全部楼层

Re: [求助]:函数定义时函数名可以作为局部变量吗?

最初由 luoxb 发布
[B](defun test( /  mis get) ;;get 是函数名
...
(get)
...



(defun get()
...
)


编译时,出现提示:警告:函数用做局部变量 get .

双击,警告定位在(get).

请问,这是什么意思,可能引... [/B]


函数独立定义时,将一个函数名作为另一个函数的局部变量是有问题的,结果是程序加载一次只能运行一次,或者直接不能运行。
在AutoCAD自带的程序中,将函数名作为局部变量的情况很多,但此函数名一般不作为独立定义的函数,而是在其它函数运行时才定义的“子”函数,这样做的好处是减少不必要的系统开销。
定义格式如下:
  1. (defun xxmain()
  2.   (defun a() ....)
  3.   (defun b() ...)
  4. )

  5. (defun c:xx(/ a b ....)  ;这里不能包括xxmain
  6.   ...
  7.   (a)
  8.   ...
  9.   (b)
  10.   ...
  11. )


另:局部变量与变元名称说明是可以重复的,即“/”前后有重复,但这是不必要的,因为变元自动被认为是局部变量。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-6 20:53:12 | 显示全部楼层
谢谢大家, 特别是4楼讲的很清楚,我明白了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2006-8-8 21:43:31 | 显示全部楼层
好处无非是不害怕重名
(defun a(/ b c)
  (defun b() ..)  (defun c() ..)
)

(defun d(/ b c)
  (defun b() ..)  (defun c() ..)
)

函数b c只能在里面起作用,不会互相干扰.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 04:40 , Processed in 0.225592 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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