|
传值(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, 虽然这么做会牺牲效率,但代码更清晰,防止非法修改。
本文转载自:西门子工业技术论坛
|
|