明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2881|回复: 6

有个问题一直不太了然

[复制链接]
发表于 2002-5-16 15:02:00 | 显示全部楼层 |阅读模式
在Lisp中,是不是在函数名后的括号中没包括的变量就是全局变量。
如:
(defun c:aaa(x y / i j)
...
(setq z 1)
...
)
这个“z”就是全局变量?
如果在同一程序的另一函数中有defun bbb(z)这一名呢?
谢谢各位!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2002-5-16 17:01:00 | 显示全部楼层

我的看法...

这个“z”就是全局变量?
//这个“z”就是全局变量

如果在同一程序的另一函数中有defun bbb(z)这一名呢?
//我想这个参数表里的z应该只是函数的一个形式参数,与外面的那个全局变量z没有关系的.

//不知道对不对,大家讨论一下吧?
发表于 2002-5-16 21:03:00 | 显示全部楼层

我也这样想

这个问题应该让陈老师说说,他的书里就有关于全局变量等的描述内容
发表于 2002-5-17 00:03:00 | 显示全部楼层

看看执行完c:ccc后z的值

(defun aaa ()
  (setq z 1)
)
(defun bbb (z)
  (setq z 2)
)
(defun c:ccc ( / z)
  (aaa)
  (princ (strcat "\nz(aaa)=" (itoa z)))
  (bbb 2)
  (princ (strcat "\nz(bbb)=" (itoa z)))
  (setq z 3)
  (princ (strcat "\nz(ccc)=" (itoa z)))
  (princ)
)
 楼主| 发表于 2002-5-17 13:46:00 | 显示全部楼层

谢谢,看完各位的意见后基本明了了。

发表于 2002-5-18 08:52:00 | 显示全部楼层

我说几句...

您提交了一个不可能执行的样例让我们分析,为什么?
对于变量身份,许多书都有明确的解释,例如在我写的《Visual LISP for AutoCAD2000程序设计——从学会到用好》第四章中:
-----------------------------------------------------------------
(4)内部变量的描述中,不包括该函数运行中定义的所有的参数:
这就明确描述了该函数中的“内部变量”、“形式参数”和“公用变量”(没写入变量表,但会在程序运行中产生的变量名或常量名)。这种公用变量可在该函数运行结束后仍然留在内存中,因此可供各函数公用。
------------------------------------------------------------------
 楼主| 发表于 2002-5-18 11:03:00 | 显示全部楼层

谢谢

陈伯雄发表于2002-5-18 8:52:00您提交了一个不可能执行的样例让我们分析,为什么?


如果我有分析一个好的例程,也就不会提这个问题了。
至于陈兄的书,我手上没有,最近又没时间去书店,所以就这样了。
这里谢谢各位了,人有时都有点懒,可以提问自己就不去想、不去找了,这可能也是在坛子里有一些重复的问题的原因吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 15:33 , Processed in 0.172805 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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