关于VFP中子程序的应用

[复制链接]
查看11 | 回复3 | 2010-8-23 08:34:10 | 显示全部楼层 |阅读模式
* main9.prg
set talk off
c=1
?c
do p9 with 3
?c
set talk on
*p9.prg
para c
?c
c=5
private c
?c
c=7
return
在程序执行过程中运行到“PRIV C"的“?c”时为什么不提示变量找不到?
我的意思是在过程文件P9中,C是形参,后来又将C隐藏了,但是在隐藏后没有给C赋值就直接输出了C,为什么VFP这时候不提示“未找到变量C”?

回复

使用道具 举报

千问 | 2010-8-23 08:34:10 | 显示全部楼层
首先:单个字母 A 到 J 和 M 是保留字,且不能作为内存变量名再次,private 是隐藏变量不错,但你理解错了,他不不是隐藏当前函数或过程中的变量,而是隐藏调用这个函数或过程的上一级程序中的同名变量在这个理解基础上,就好明白了
回复

使用道具 举报

千问 | 2010-8-23 08:34:10 | 显示全部楼层
你应该是这样写的吧:set talk offc=1?cdo p9 with 3?cset talk on--以下这段为子程序PROCEDURE p9
para c?cc=5private c?cc=7return返回的结果为:1351如果你对结果满意,请给最
回复

使用道具 举报

千问 | 2010-8-23 08:34:10 | 显示全部楼层
我上机试过了,程序没问题。1351
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行