- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VFP-04-06-变量作用域、自定义函数
变量作用域、自定义函数
4.5.3 内存变量的作用域
变量的作用域:变量的作范围。程序由模块(主、子程序)组成,模块中有内存变量,内存变量有作用范围。变量的作用域,从定义变量处开始,一直向下。
1.定义全局内存变量
全局变量既可以是单个变量,也可以是数组。分别以下列格式定义。
格式1:Public 内存变量表
格式2:Public 数组名1(上界1[,上界2[, ...])[,…]
功能:定义全局变量。
①内存变量表中既可含普通变量,也可含数组。
②全局变量不会自动释放。只能用release命令显式释放,或退出VFP。
③VFP命令窗口中定义的变量,默认为全局变量。
④全局数组的每个元素都是全局的。
第116页,例 4.35 主程序中使用子程序中定义的全局变量。
*文件名Main.prg
set talk off
clear
clear memory 清除所有内存变量
I=2 默认是私有的
Do ABC
?主程序中的输出结果:
?I=+str(I,2)+ J=+str(J,2)
set talk on
return
*---------------------
Procedure ABC
public J
J=I*8
J=J+5
?过程中的输出结果:
?I=+str(I,2)+ J=+str(J,2)
return
小提示:要检测全局变量,请先clear memory以排除干扰。
2.定义局部内存变量
(1)什么叫局部?
更小的范围就是局部。对于一个模块,更后的部分是局部。对于主程序,子程序是局部。
(2)Private定义局部变量
格式1:Private 内存变量表
格式2:Private 数组名1(上界1[,上界2[, ...])[,…]
功能:定义局部变量。
①未经定义的变量,默认是局部(Private)的。
③无论全局还是局部变量,无初值的,一律自动赋初值.F.。
③局部变量作用域的子模块扩展规则
Private变量的作用域,通过调用子模块而扩展到子模块中。
图4-20 Private变量作用域子模块扩展规则
第117页,例 4.36 子程序中的局部变量,在主程序中找不到。
R=100 默认为Private变量
Do Sub1 调用子程序
?P 主程序中找不到这个变量
Return
*-------------------
procedure Sub1
P=2*3.14*R 主程序中的Private变量,子程序中可用
return
3.Private隐藏内存变量的功能
(1)同名变量就近使用规则(原理)
程序中,对于同名的变量,默认使用最近的。因此,
①字段变量(因为在当前工作区内)优先于(即隐藏)同名内存变量;
注:什么叫隐藏?就是被遮住,看不见,用不上。
图4-22 字段变量隐藏同名内存变量
例如 use student.dbf
use student.dbf
?学号 结果是字段变量“学号”值,如“960106”
学号=abcd “=”号赋值,只给内存变量赋值
?学号 结果还是优先使用字段变量
?m.学号 特别用“m.”指明内存变量,结果才是“abcd”
②同一模块内,小局部存变量优先于(即隐藏)大局部同名内存变量;
图4-23 Private变量隐藏同模块同名变量
③不同模块中,子模块局部内存变量优先于(即隐藏)主模块同名内存变量。
图4-26 用Private隐隐藏变量
小提示:主程序中的private变量,子程序同样可以用private屏蔽。
(3)为什么大范围定义的局部变量,小范围中再定义为全局变量会出错?
因为那样,与Private的隐藏功能相矛盾。
第118页,例 4.37 子程序中的同名局部变量隐藏主程序中同名变量。
R=100 默认为Private变量
P=10 默认为Private变量
Do Sub2 调用子程序
?P 仍是主程序中的值
Return
*-------------------
procedure Sub2
Private P 局部变量,主程序中的同名变量被屏蔽
P=2*3.14*R 主程序中的Private变量,子程序中可用
Return
*(5)有没有不通过子程序扩展作用域的变量?
有,Local变量,即本地变量。如:Local x,y,z。
小提示:采用Local变量,是向C语言靠拢。
4.调用过程时的数据传递
教学提示:VFP的参数传递,过程中默认传址
您可能关注的文档
- Unit 7. Your education is your future.ppt
- Illustrator设计教案(第一讲).ppt
- Unit 9 Section B(3a-self check).ppt
- IMETEC电热毯项目分析讨论7.1.ppt
- 知识可视化工具.ppt
- 化工过程设备设计第二阶段在线作业14秋.doc
- Unit 9 Can you come to my party Section B 课件2.ppt
- Unit-4-Making-the-news单词讲解.ppt
- unit10 表面工程.ppt
- Unit 6 happybirthday_A部分.ppt
- internal for instructor-lesson plans partner course讲师课程计划合作伙伴.pdf
- 通过销售给客户来报废资产fifa abad国际足联世纪.pdf
- 内省了解javabean加强.pdf
- 测试无线终端开发认证组技术战略telus要求范围独立发布vstandalone terminal specification.pdf
- 计算书西区信息.pdf
- 文案详解the pelican kragi鹈鹕岩.pdf
- 综合平行证明.pdf
- 23ase study电子商务概要.pdf
- 文稿课件c o m qlik sense成果.pdf
- jimmy choo ss15男士系列鞋履mens collection男装.pdf
最近下载
- 材料电子及中子分析技术第8章 电子背散射衍射ppt.pptx VIP
- 人教版小学数学三年级下册全册教案(2024年春季修订).pdf
- 04 缤纷世界(2023初中英语中考时文阅读+完型填空+任务型阅读)(解析版).docx VIP
- ANSYS_Fluent_UDF_Manual(自定义UDF帮助文件).pdf VIP
- 你来比划我来猜(可选题组完美版).ppt
- 03 芸芸众生(2023初中英语中考时文阅读+完型填空+任务型阅读)(解析版).docx VIP
- 某EPC项目技术标投标文件.pdf
- 02 环保天地(2023初中英语中考时文阅读+完型填空+任务型阅读)(解析版).docx VIP
- DB33 1239-2021 建设工程配建5G移动通信基础设施技术标准.docx VIP
- 财政绩效评价方案.docx
文档评论(0)