vfp6.0中:
过程的调用格式:do 过程名 with 参数 procedure……endproc
自定义函数:函数名(参数) ……function……endfunc
但是如下程序,也可运行成功,为什么呢?调用格式混在一起了啊
x=0
y=0
x=0
s=p1()
?"s=",s
return
procedure p1
input "x:" to x
input "y:" to y
s=x*y
return s
菜鸟,求大神相助解惑,感激……
如果你的代码可以运行,那么应该是vfp没有从语法上禁止procedure返回值。vfp在语法上比较宽松是照顾一些不会写程序的人使用。缺点是编写的代码可读性不好。
procedure不是定义过程的吗?可是你的使用方法是函数。应该用function来定义
其实你不用纠结这个的。
你用do 过程名 with 实参 调用和用函数名(实参)调用所得到的结果是一样的。
而真正要注意的是你所写的子程序,
如果你用的是procedure来写子程序,末尾要写一句return 返回值
如果你用的是function来写子程序,末尾一定要写return 返回值