找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1145|回复: 6

[投诉]:关于全局变量的问题

[复制链接]
发表于 2007-3-5 23:18:42 | 显示全部楼层 |阅读模式

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

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

×
记得以前见过文章说 / 号前是全局变量, / 号后是局部变量。下面的例子执行后为什么会提示; 错误: 参数太少呢。


  1. (defun c:91 (se / sa sb sc)
  2. (setq sa 100)
  3. (setq sb 20)
  4. (setq sc 10)
  5. ;(setq se (+ sa sb sc))
  6. (setq se (+ 1 2 3))
  7. )

改成

  1. (defun c:91 (/ sa sb sc)
  2. (setq sa 100)
  3. (setq sb 20)
  4. (setq sc 10)
  5. ;(setq se (+ sa sb sc))
  6. (setq se (+ 1 2 3))
  7. )

后就可以执行了,
程序执行后查询!se也有结果

是不是书写错了,还是我理解有误?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-3-5 23:44:22 | 显示全部楼层
/ 号前是函数主参数,而非全局变量,全局变量不需要申明!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-5 23:54:37 | 显示全部楼层
函数主参数
用在什么场合?有个简单的示意例子么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-3-6 09:38:25 | 显示全部楼层
函数分带参数与不带参数两种。
<br>
一、若不带参数,例如定义如下:
[PHP]
(defun  princ-th ( )
            (princ  "\n>>>感谢使用,zml84“)
            (princ)
)
[/PHP]
上面的代码就定义了一个函数princ-th,用于在文本窗口输出固定的信息。
要使用这个函数,需要将函数名扩住。即:

  1. (princ-th)
复制代码

可以在ACAD命令行、控制台以及你的代码中任一个位置使用它。
<br>
另外,如果想要在命令行直接调用这个函数,也可以这么做:
[PHP]
(defun  C:princ-th ( )
            (princ  "\n>>>感谢使用,zml84“)
            (princ)
)
[/PHP]
即在函数名前写上"C:"。
<br>
二、若带参数,则在定义时函数名就不能加前缀"C:"
在定义函数时,参数列表中在 / 前的就是调用时应该传入的参数。例如:
[PHP]
(defun   aaa ( a b / c )
             (setq c (+ a b))
)  
[/PHP]
上面这段模拟代码定义了一个带参数的函数aaa,它有两个参数a和b。
而c则是该函数的局部变量,也就是说在c的生命周期仅局限于该函数该次调用内,在其他地方是看不到的。
在使用函数aaa时,则需要这样:
[PHP]
(aaa  1  2)
;;;返回:3
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-6 12:34:33 | 显示全部楼层
有点明白了,(defun   aaa ( a b / c )这种类型的函数定义作为子函数供调用。a b是子函数的参数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-3-6 13:24:32 | 显示全部楼层
/ 前面的参数是形参(需要传递的参数),后面是局部变量
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-18 21:04:27 | 显示全部楼层
学习了,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 21:37 , Processed in 0.449748 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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