变量作用域、自定义函数变量的作用域:变量的作围
程序由模块〔主、子程序〕组成,模块中有存变量,存变量有作用围
变量的作用域,从定义变量处开场,一直向下
1.定义全局存变量全局变量既可以是单个变量,也可以是数组
分别以以下格式定义
格式1:Public 格式2:Public (上界1[,上界2[,
])[,…]功能:定义全局变量
①中既可含普通变量,也可含数组
②全局变量不会自动释放
只能用release命令显式释放,或退出VFP
③VFP命令窗口中定义的变量,默认为全局变量
④全局数组的每个元素都是全局的
第116页,例 4
35 主程序中使用子程序中定义的全局变量
*文件名Main
prgset talk offclearclear memory &&去除所有存变量I=2 &&默认是私有的Do ABC
"主程序中的输出结果:"
"I="+str(I,2)+" J="+str(J,2)set talk onreturn*---------------------Procedure ABCpublic JJ=I*8J=J+5
"过程中的输出结果:"
"I="+str(I,2)+" J="+str(J,2)return小提示:要检测全局变量,请先clear memory以排除干扰
2.定义局部存变量(1)什么叫局部
更小的围就是局部
对于一个模块,更后的局部是局部
对于主程序,子程序是局部
(2)Private定义局部变量格式1:Private 格式2:Private (上界1[,上界2[,
])[,…]功能:定义局部变量
①未经定义的变量,默认是局部(Private)的
③无论全局还是局部变量,无初值的,一律自动赋初值
③局部变量作用域的子模块扩展规那么Private变量的作用域,通过调用子模块而扩展到子模块中
图4-20 Private变量作用域子模块扩展