哪位能给讲一下为什么函数调用中参数中 byval 变量名 这种格式是正确的 而用 byref 变量名 这种格式时提示 缺少表达式。
有如下一个函数
Private Function s(Byref d As Long) As Long
Dim m As Long
m = d
End Function
以下是某个调用此函数的过程
Private Sub Command1_Click()
dim a as long ,b as long
c=1234
a=s(byval c)
a=s(byref c)
End Sub
为什么 a=s(byval c) 没有问题,而写完 a=s(byref c)就直接提示 缺少表达式,且byval处理选中状态。
[解决办法]
byval是一种特殊用法,强制传值
参考
byval vb 的特殊用法
[解决办法]
调用时,只能用 Byval 关键字。
[解决办法]
其实这个vb里理解起来比较困难,如果用c等理解就方便了,函数要求传地址,我们可以把A这个地址放在一个变量B里,当然我们不能传B这个变量的地址就要用(byval B)
[解决办法]
想从本质上搞清除ByVal和ByRef的区别请在VC调试环境中查看对应的汇编代码