功能块与子程序的区别 (功能块程序中的变量称为)

功能块与子程序的区别

功能块和子程序都是可重用代码的单位,但在细节上有所不同。以下是一些主要区别:

范围

功能块在整个程序范围内可见,而子程序仅在其定义的范围内可见。

变量作用域

功能块程序中的变量在功能块范围内可见,而子程序中的变量在其自身和所有嵌套作用域范围内可见。

参数传递

功能块使用值传递参数,这意味着传入功能块的参数的副本被创建并在功能块中使用。子程序使用引用传递参数,这意味着传入子程序的参数的原始地址被传递,并可在子程序中修改。

返回类型

功能块必须具有明确的返回类型,而子程序没有。

并行性

功能块可以并行执行,这意味着可以同时调用多个功能块实例。子程序不能并行执行。

状态

功能块可以包含状态,这意味着它们可以在调用之间保留数据。子程序不能包含状态。

调用方式

功能块可以通过其名称直接调用,而子程序必须通过显式调用语句调用。

实例化

功能块可以被实例化,这意味着可以创建多个功能块实例,每个实例具有独立的变量和状态。子程序不能被实例化。

总结

下表总结了功能块和子程序之间的主要区别:| 特征 | 功能块 | 子程序 | |---|---|---| | 范围 | 整个程序范围 | 定义的范围 | | 变量作用域 | 功能块范围内 | 自身和所有嵌套作用域范围内 | | 参数传递 | 值传递 | 引用传递 | | 返回类型 | 必须明确 | 无 | | 并行性 | 可并行执行 | 不能并行执行 | | 状态 | 可包含 | 不能包含 | | 调用方式 | 直接通过名称 | 显式调用语句 | |实例化 | 可实例化 | 不能实例化 |

何时使用功能块和子程序

功能块和子程序各有其优缺点,在不同的情况下使用是很常见的。

功能块适合以下情况:

需要在整个程序范围内可见的函数性代码需要维护状态的代码可以并行执行的代码

子程序适合以下情况:

需要在特定范围内可见的代码需要修改输入参数的代码不需要维护状态的代码不能并行执行的代码最终,在功能块和子程序之间进行选择取决于具体的需求。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论