电工学习网

 找回密码
 立即注册
查看: 2753|回复: 1
打印 上一主题 下一主题

FB 接口只有in_out 才能定义variant,FC的in,output,和in_out都可以定义variant

[复制链接]
跳转到指定楼层
楼主
发表于 2017-9-22 22:56:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
传值(pass by value)和传引用(pass by reference)的区别。

传值有拷贝开销,而传引用没有,传引用的实质就是传指针,所以可以在函数体内修改传进来的那个变量。而传值是不行的。

对于基本数据类型,FC和FB接口都是传值。这里我们讨论复合数据类型。


variant的本质是指针,只能在传引用的接口区声明。
FB 的in,output接口都是传值,而in_out 接口是传引用,故variant必须在in_out区声明,可以在函数块内修改实参的值。

对于FC的in,output,in_out接口都是传引用,都可以定义variant变量。既然in接口是传引用,为何不能在函数内修改函数外的值呢,因为这个引用是只读引用。

如果有一个大型数组,读取无需修改元素的值,对于FC,尽量在in接口声明,而不是在in_out接口。
对于FB,建议放在in,而不是放在in_out, 虽然这么做会牺牲效率,但代码更清晰,防止非法修改。

本文转载自:西门子工业技术论坛

回复

使用道具 举报

沙发
发表于 2017-9-23 05:08:52 | 只看该作者
没有接触器的知识点      

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-26 16:06

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表