| 作者 | 主题 |
|---|---|
|
liulm 新手 经验值:50 发帖数:11 精华帖:0 |
楼主
主题:什么叫实参什么叫形参
我在学功能和功能块的参数赋值时对形参和实参的概念很是模糊,有谁能结合实例和我讲讲吗?万分感谢!
|
|
天兰兰 游侠 经验值:501 发帖数:91 精华帖:1 |
2楼
主题:回复:什么叫实参什么叫形参
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。 2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。 4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。 斑竹补充: 1,上述解释来自计算机高级语言的定义。针对S7 PLC有如下不同。 2,S7函数用STL、LAD、FBD编程的实参不能是表达式。 3,S7函数的实参和形参数据类型不同时,STEP7编译发现不了问题(即没有语法错,系统认为没问题),但运算结果会错,表现为控制逻辑不对,按程序逻辑查错误很难排除。 4,第4点所说,在C等高级语言里数据是从实参->形参的单向传递,但在S7 PLC里当形参是IN-OUT类型时,可以双向传递。也就是说S7程序函数的IN-OUT类型形参在调用时首先从实参取得数据,在函数运算执行退出时再将数据回传给实参。 |