Sub可以理解為執行一個過車,一個操作。
Function在執行完過后,還要返回一個結果。
Sub:過程;Function:函數,可以帶返回值。
語法:
Sub SubName(參數1,參數2,...)
...
End Sub
Function FunctionName(參數1,參數2,...)
...
FunctionName=返回值
End Function
調用時:
Sub 只能用: SubName(參數1,參數2,...) 變量=FunctionName(參數1,參數2,...)
以上均未講出根本:
Sub與Function均可以有返回值。所以首先要講清楚返回方式:有兩種,過程或函數返回,即分配與過程或函數同名的返回變量地址。Function分配,但Sub不分配。VB有此方式加以區分,VC則用void聲明不用分配。即如p=aa(),若aa()時sub則什么也的不懂,還會報錯。但函數則會得到相應的數值。其次,參數返回,VB中缺省用地址傳參,即能返回。但聲明為BYVAL即值傳參,則不可返回,所以,不存在靈活性的差別。比如函數function bb(a,b),
調用時可以bb m, n也可以p=bb(m,n).
實際,如果確認不會失敗,才能用SUB,否則,必須要用FUNCTION以確認是否成功或取得返回值。所以編程,應少用SUB,少用 SubName 參數1,
參數2,...的調用方式。
sub是過程不需要返回值,function是函數,需要返回值,如下:
Function
NameOfFunction(parameter1, parameter2)
'some code
NameOfFunction = return
value
End Function
________________________________________________
Sub
NameOfSubRoutine(parameter1, parameter2)
'some code...
End Sub