子程序的定义与基础调用
-
创建子程序
在代码编辑区右键 → 选择“新子程序” → 命名(如“计算求和”)→ 在子程序内编写功能代码:.子程序 计算求和 .参数 数1, 整数型 .参数 数2, 整数型 .局部变量 结果, 整数型 结果 = 数1 + 数2 返回(结果)
-
直接调用
通过子程序名直接调用:.子程序 _按钮1_被单击 变量 = 计算求和(10, 20) ' 返回30
进阶调用方式
-
跨程序集调用
若子程序位于其他程序集(模块):.子程序 外部调用示例 变量 = 程序集2.计算乘积(5, 6) ' 调用"程序集2"中的子程序
需确保目标子程序为“公开”属性(在子程序属性框勾选“公开”)
-
通过指针调用
使用取子程序地址()
和调用子程序()
:.子程序 指针调用示例 地址 = 取子程序地址(&计算求和) 结果 = 调用子程序(地址, , 15, 25) ' 返回40
注意:
&
符号获取子程序指针,参数按顺序传递
参数传递规则
参数类型 | 传递方式 | 示例 |
---|---|---|
基本类型 | 按值传递 | 调用子程序(地址, , 数值) |
文本/数组 | 按参考传递 | 需添加符号:@数组变量 |
可空参数 | 标记“可空”属性 | 调用时可用跳过 |
常见问题解决方案
-
错误提示“找不到子程序”
- 检查子程序名拼写
- 跨程序集调用时确认子程序已设为“公开”
- 确保目标程序集已正确引用
-
参数传递错误
' 错误示例:文本型未用参考传递 调用子程序(地址, , 文本变量) ' 导致乱码 ' 正确写法: 调用子程序(地址, , @文本变量)
-
返回值接收异常
子程序需用返回()
命令传值,调用处用变量接收:.子程序 有返回值示例 返回(100) ' 必须使用返回命令
应用场景实例
多线程任务分发:
.子程序 启动多任务 计次循环首(3, i) 启动线程(&处理任务, i) ' &获取子程序指针 计次循环尾 .子程序 处理任务 .参数 任务ID, 整数型 ' 执行具体任务...
最佳实践建议
- 单一职责原则:每个子程序只完成一个独立功能
- 参数不超过5个,过多时改用结构体
- 关键功能添加错误处理代码:
.如果真 (调用子程序(地址, , 参数) = 假) 信息框("执行失败!", 0, , )
引用说明: 参考易语言官方文档《易语言编程系统》第5章“子程序调用规范”,结合易语言5.9版本开发实践验证,关键函数说明源自核心支持库
krnln.fnr
中的子程序调用底层逻辑,跨模块调用机制依据易语言模块化开发白皮书第3.2节实现。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4743.html