首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

哪位能给讲一下为什么函数调用中参数中 byval 变量名 这种格式是正确的 而用 byref 变量名 这种格式时提示 缺少表达式。该如何处理

2012-03-15 
哪位能给讲一下为什么函数调用中参数中 byval 变量名这种格式是正确的 而用byref 变量名 这种格式时提示

哪位能给讲一下为什么函数调用中参数中 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调试环境中查看对应的汇编代码

热点排行