明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1653|回复: 7

[函数] G:、I:等是神马意思啊?

[复制链接]
发表于 2013-3-29 21:16:59 | 显示全部楼层 |阅读模式
我在论坛上看到大家定义函数时,除了(defun C:XXX()...)这种格式以外,还用了(defun G:XXX()...)、(defun I:XXX()...)等格式,后面两种是什么意思啊?
另外,我还听说过"局部子函数"这个讲法,那么什么是局部子函数呢?怎么定义局部子函数呢?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-3-29 21:52:54 | 显示全部楼层
(defun G:XXX()...)、(defun I:XXX()...)里面的冒号,同ABC....之类的符号应该没有什么区别。
 楼主| 发表于 2013-3-29 22:20:15 | 显示全部楼层
自贡黄明儒 发表于 2013-3-29 21:52
(defun G:XXX()...)、(defun I:XXX()...)里面的冒号,同ABC....之类的符号应该没有什么区别。

也就是说这些也是为了区别函数名儿用的?起特殊作用的只有C:?
发表于 2013-3-29 22:24:30 | 显示全部楼层
defun函数定义的变量名只有“c:”有特殊意义,其它都只是一个普通的变量名,但有时在程序中使用这些“前缀”可以增加程序的可读性,还可能避免一些不必要的冲突定义。我在一些大程序中,喜欢用程序名作为前缀,比如ca.lsp中,函数名用“ca_”作为前缀,全局变量则用“ca:”作为前缀,这样,就不太容易发生冲突了。

所谓“局部子函数”只是一种俗称,其实也是一种普通的函数定义,但这类函数也有一些自己的特点,就是在函数中定义函数,而函数名则作为“母”函数的局部变量,也就是说,程序运行结束后,这些“子”函数也不复存在了。
比如:
(defun fun(/ fun1 fun2)
  (defun fun1()
      ......
  )
  (defun fun2()
     ......
  )
)
这里的fun1和fun2就可以理解为“局部子函数”。

点评

S::也有特殊意义  发表于 2013-9-29 08:26
 楼主| 发表于 2013-3-29 22:28:54 | 显示全部楼层
ll_j 发表于 2013-3-29 22:24
defun函数定义的变量名只有“c:”有特殊意义,其它都只是一个普通的变量名,但有时在程序中使用这些“前缀” ...

哦哦哦,原来如此,,
发表于 2013-9-28 19:29:06 | 显示全部楼层
ll_j 发表于 2013-3-29 22:24
defun函数定义的变量名只有“c:”有特殊意义,其它都只是一个普通的变量名,但有时在程序中使用这些“前缀” ...

谢谢大侠,收益了
发表于 2013-9-30 14:30:48 | 显示全部楼层
收益了,谢谢
发表于 2013-9-30 17:19:40 | 显示全部楼层
应该还有一个defun S::XXXXX() ,用于在加载时自动执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-25 14:35 , Processed in 0.183417 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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