L listhano Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-26 #1 问一个基础问题: "过程"里可不可以有“函数”即FUNCTION,如果可以的话,这样做好不好? 怎么样做才好?
L listhano Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-26 #2 问一个基础问题: "过程"里可不可以有“函数”即FUNCTION,如果可以的话,这样做好不好? 怎么样做才好?
勇 勇者 Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-26 #3 可以,相当于单元和过程,函数的关系,不存在好不好的问题,合理就行
饭 饭前饭后 Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-26 #4 函数本来就是一个过程,不过是一个带参数的过程,函数和过程都支持嵌套,对执行效率没有多大影响
L listhano Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-26 #5 路过的看看,给点儿指教,非常感激。 感激之余,请你举个例子。 谢谢了!
X xianguo Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-26 #6 procedure MyProcedure; function MyFunction1 : Integer begin ... end; var i : Integer; begin i := MyFunction1; ... end;
procedure MyProcedure; function MyFunction1 : Integer begin ... end; var i : Integer; begin i := MyFunction1; ... end;
Y yf_zq Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-26 #7 procedure MyProcedure; function MyFunction1 : Integer begin ... end; var i : Integer; begin i := MyFunction1; ... end; 这样做呢函数属于内部函数,只有MyProcedure可以调用。 这样主要看你的起初设计。
procedure MyProcedure; function MyFunction1 : Integer begin ... end; var i : Integer; begin i := MyFunction1; ... end; 这样做呢函数属于内部函数,只有MyProcedure可以调用。 这样主要看你的起初设计。
W wanshi131 Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-27 #8 这样做不太规范吧 况且这样做也并不能提高效率 函数只是在调用的时候才分配存储空间,局部函数和全局函数一样
Z zpselect Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-27 #10 可是可以!不过我认为函数不要写在过程之中,这样使程序显得不够整洁!如果函数比较大的话,界面很没有条理性的!
W wolf_fly Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-27 #11 可以的,来自xianguo的例子就是那个意思了,程序整洁与界面条理性的问题因该都是自己设计的问题了
J josen_02 Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-28 #12 这是完全允许的,只是这样做好,只能是定义它的过程或函数使用,这也起到了一定的作用---就是作用域的问题。 如果你在设计的时候,不想让其他的过程或函数来使用它,那么你完全可以这样做,当然我在做设计时,经常要用到,一般都是在一个过程里都定义了好几个过程。
这是完全允许的,只是这样做好,只能是定义它的过程或函数使用,这也起到了一定的作用---就是作用域的问题。 如果你在设计的时候,不想让其他的过程或函数来使用它,那么你完全可以这样做,当然我在做设计时,经常要用到,一般都是在一个过程里都定义了好几个过程。
L ljm192837 Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-28 #14 lich的说法很简洁,但说得很在理,不过还不够说到点子上,过程他不能当着一个值运算,而函数可以;
J jshyhzj Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-28 #15 "过程"里可以有“函数”即FUNCTION 过程和函数可以相互嵌套,深度受限于编译器的能力 这样做非常好 对效率无任何影响。 建议: 如果一个过程A仅被过程B使用,要把过程A定义在过程B中 目标: 标识符要局部化,不要无意义地扩展其作用域 注意: 局部化后的过程或函数不能做为参数使用(指参数是过程类型的),原因比较复杂:编译器开发时考虑局部化的过程或函数如果调用次数非常少,可以编译为内嵌代码的,因此这些局部化的过程或函数可能根本没有固定的地址。但据我观察DELPHI当前的编译器任何时候都没这么做。
"过程"里可以有“函数”即FUNCTION 过程和函数可以相互嵌套,深度受限于编译器的能力 这样做非常好 对效率无任何影响。 建议: 如果一个过程A仅被过程B使用,要把过程A定义在过程B中 目标: 标识符要局部化,不要无意义地扩展其作用域 注意: 局部化后的过程或函数不能做为参数使用(指参数是过程类型的),原因比较复杂:编译器开发时考虑局部化的过程或函数如果调用次数非常少,可以编译为内嵌代码的,因此这些局部化的过程或函数可能根本没有固定的地址。但据我观察DELPHI当前的编译器任何时候都没这么做。
L listhano Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-28 #16 to jshyhzj 我觉得你说得很有深度!不过我还是觉得不过瘾。请你“再”路过的时候,好好给偶谈谈。 谢谢了!
云 云虎 Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-30 #17 在下认为,有时候并不是规则允许不允许的问题,也要考虑编程风格的问题,还有日后维护读程序的问题。
J jiangzhang3942 Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-31 #18 可以我经常这样做,但是本过程以外的过程不可以调用,
D delphisuccess Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-31 #19 可以嵌套調用。 但一定要考慮執行效果和日後的維護。
U urlabelsoft Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-31 #20 完全可以, 过程里有函数或是函数里有过程都可以,