主题:怎样使子程序中的变量每调用一次后在下次调用时自动清零
wxd040303118
[专家分:140] 发布于 2010-08-20 08:54:00
用调用好几遍某个子程序,其中子程序中的变量有很多,但想在下次调用子程序的时候把这些变量都还原为初始值,请问要怎么在定义变量时设置呢?这些变量都只在子程序中出现。[em19]
回复列表 (共7个回复)
沙发
yeg001 [专家分:14390] 发布于 2010-08-20 09:32:00
你想下次调用的时候还能保持上一次调用结束的时候的值, 就在子函数里面给他们save属性
real, save :: a
板凳
wxd040303118 [专家分:140] 发布于 2010-08-20 09:49:00
我就是不想保存,它默认是保存了撒谎能够一次的结果!
3 楼
asymptotic [专家分:16630] 发布于 2010-08-20 09:57:00
在子程序开始时,分别给这些变量赋值初始化。
这个若是你的程序需要所谓的“清零”, 你是不能偷懒的。
也许某些编译器选项可以用,但未必“可移植”。
5 楼
yeg001 [专家分:14390] 发布于 2010-08-20 10:07:00
我看得不仔细, 刚好看反了意思.
初始化是良好习惯, 其实如果没有初始化就使用, debug模式下开了初始化的检查, 他会有警告的.
6 楼
wxd040303118 [专家分:140] 发布于 2010-08-20 10:27:00
谢谢,就是说主程序不结束我唯一的办法只能是每次调用子程序的时候进行变量的初始化吧
7 楼
adda [专家分:1520] 发布于 2010-08-20 11:31:00
function f
integer :: i = 0
...
我来回复