过程作用域
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=ProPgProcedureScopes
- 最后更新: 2019-09-21
过程在程序不同模块中的作用域(可见性)。
前言:
过程是可以由过程外部的代码(或递归情况下的内部代码)调用的"子程序"(sub)或"函数"。
过程由构成过程体的一系列指令组成。
可以向过程传递值或变量,函数可以返回值或引用。
描述
模块中过程的作用域遵循简单规则:
- Private 作用域:
- Public 作用域:
- Export 作用域:
语法
[ Public | Private ] { Sub | Function } proc_name ( argumentlist ) [ [ Byref ] As datatype ] Export
或
[ Public ] { Sub | Function } proc_name ( argumentlist ) [ [ Byref ] As datatype ] Export
用法
Private、Public 和 Export 访问控制仅在过程定义中使用(禁止在声明行级别使用)。
默认情况下,过程是 Public 的,除非模块中的 Option Private 语句修改了默认状态。
这就是为什么 Private 和 Public 访问控制都有用的原因,取决于默认状态。
Export 访问控制与 Private 过程(隐式或显式定义为此)不兼容。
在编译的模块中,两个具有相同标识符但定义在不同模块内的过程可以共存,前提是两者都是 Private 的。
编译器会删除未被调用的 Private 过程,但对于仅被其他同样未被调用的 Private 过程调用的 Private 过程,此功能目前无效,因为前者看起来像是被调用了。
参见
返回 目录