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