Function 和 Sub到底有什么区别
在看一些例子时经常会使用Sub 和Function的地方,但是自己在编写程序时发现这两者有相同的特点,如可以使用参数,可以在程序任何地方调用等等。请问这两者到底有什么区别么? 问题点数:20、回复次数:7Top
1 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2005-09-03 23:51:42 得分 10
FUNCTION就是函数,有返回值(当然,你也可以不用这个返回值)
SUB就是子程序,没有返回值.
其余没有什么区别.
还是在C里面比较好,C不区分函数和子程序,一律视为函数,如果需要使用返回值,就定义返回值,不需要返回值就定义返回空值.
VB例子:
sub Add (byval A as long, byval B as long)
Msgbox A & "+" & B & "=" & A+B
end sub
这就是一个简单的子程序,弹出一个对话框. 如果调用: Add 1,3
则弹出一个对话框,内容为 1+3=4
Function Add (byval A as long, byval B as long) as long
Add= A+B
end function
这就是一个函数了.
调用:
...
D = Add(199,231) - Add(111,20)
...
调用后D的值为: D = 430 - 131 = 299
不知道这么解释楼主明白了没有
Top
2 楼greatwriter(文豪)回复于 2005-09-04 00:17:41 得分 0
同意楼上,sub和function好象就是有没有返回值的分别Top
3 楼okay2003()回复于 2005-09-04 00:22:12 得分 0
明白了。但是还要问一下在声明参数时使用“byval”是什么意思?我在函数中声明参数没有用过这个东西啊?Top
4 楼zcazyy(狮心王)回复于 2005-09-04 01:24:53 得分 0
byval 就是按值传送到函数或子过程,在函数或子过程改变其值,不影响原来的变量。Top
5 楼taoheping(红风)回复于 2005-09-04 01:27:27 得分 0
一个有返回值,一个没有Top
6 楼caozhy(cfx)回复于 2005-09-04 01:29:17 得分 10
ByVal 是按值传递的意思。
比如:
x = 4
y = 4
Call Func1(x)
Call Func2(y)
MsgBox x '返回 6
MsgBox y '返回 4
Function Func1(ByRef n As Long)
n = 6
End Function
Function Func2(ByVal n As Long)
n = 6
End FunctionTop
7 楼okay2003()回复于 2005-09-04 08:42:07 得分 0
明白了,结贴Top




