回复:带参数的子程序块,能同时重复使用吗?

已锁定

lf184452

  • 帖子

    449
  • 精华

    6
  • 被关注

    17

论坛等级:侠圣

注册时间:2015-01-29

普通 普通 如何晋级?

发布于 2020-02-15 21:44:07

15楼

说不能重复使用的,或者说有风险的,估计都是编程学的不过关,不过这也难怪,大部分工控人都是非科班出生,编程基础太差,一般来说,子程序可以重复调用,在编程上有个名词叫做可重入性,函数如果要满足可重入性要求,一般不能使用全局变量或内部静态变量,当然高级的编程语言有同步锁提供,同样可以实现使用全局变量而可重入,当然这种情况暂时不在我们的讨论范围内,不能使用全局变量和静态变量,那么只能使用临时变量了,临时变量是建立在程序堆栈基础之上的,子程序的每次调用系统都会为其开辟一块堆栈,传输实参,存储返回地址,提供临时变量等待,所以可以互不影响,临时变量一定用先赋值在使用,这是很关键的,虽然很多高级的编译器支持临时变量初始化,我们任然要坚持这个规则,因为并不是所有编译器都支持这一功能,另外子程序调用完成返回后临时堆栈区域会被释放,所以不能保存当次运算的任何结果,也不要尝试去使用临时变量是保存任何结果,所有需要保存的结果都必须传出去。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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