恭喜,你发布的帖子
发布于 2024-01-10 11:26:42
61楼
六、 接口Input、InOut、Output不同结果这个问题我也考虑过,楼主有什么经验和见解吗?
根据编程遇到的问题总结,大体有以下几点纲要,具体案例贴不出来.
1、InOut写在OutPut中,监控该值时,不能在线修改为0。
2、IN(只读)变量定义在INOUT中,造成的问题程序段大部分时间正确执行,偶尔出现随机问题,如果是触摸屏关联此变量,会出现“这个按键不灵”的假像。
结论:只需要读的变量如果定义在INOUT中,如果此程序一直扫描,有可能会导致这个变量在它本该写的地方随机性出现写不进去的现象
3、Output只写变量定义在了INOUT中
案例:直线交叉带与串口服务器通信,会误动作一些特定位置的小车(必现)
总结:
in out参数,每次调用函数(功能)时,都将这个实参的值赋值给形参(L变量区,也叫临时变量区),函数内部处理完成后,将这个形参(临时变量)的计算结果再返回给实参。如果函数内部没有对这个参数进行任何操作,则实参的值不会改变,并且是确定的。
out参数,则调用前不会赋值给形式参数 (L区临时变量)。只是函数(功能) 内部处理完后,将形参的值赋值给实参。如果函数内部没有确定这个形参的值(函数内部没有对这个参数进行处理),则out实参的值是不确定的。
注意两者除了二次使用触点外,还有个明显的区别:确定与不确定。由于L区变量公用,调用之前如果没有对这个L区变量进行赋值或内部计算确定结果,则这个临时变量可能是其它函数的处理结果
(当然,如果你只有一个子程序的话,可能就你一个人使用到L区变量,别人没有干扰你)
请填写推广理由:
分享
只看
楼主