回复:也来谈谈“先赋值后使用”!

幸福的方向

  • 帖子

    227
  • 精华

    0
  • 被关注

    16

论坛等级:侠士

注册时间:2010-04-11

普通 普通 如何晋级?

发布于 2018-01-14 16:16:51

8楼

    又试验了一下,这次把FB1内的临时变量改名为run2,运行结果也一样,是相互影响的。我再加了一个FB2,中间变量run1 用静态变量来代替,运行结果是FC1与FB1因为临时变量相互影响,而FB2因为用的是静态变量,不受其他两个影响。

    想了一下:临时变量调用后会保存调用后的结果,真正释放的是局部变量(如那些#start)。临时变量就像内存,调用后会留下上次使用的结果。这些内存是公用的,两个不同的块分别使用相同的内存(如FC1和FB1都是使用的一个位),而不管你给这个位起命为run1,还是run2,反正使用的都是公共内存的这个位,那么就会相互影响。这也正好就有了:临时变量必须“先赋值后使用”。

    很容易被麻痹,块调用结束临时变量不会释放,释放的是一些局部变量。

    

雨过分洼种瓜,旱时饮水浇麻。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。