作者yuchih0519 (昱)
看板Programming
标题[问题]Fortran的Save语句如何於其他语言中实现?
时间Sun Oct 30 23:04:18 2011
最近有个需求要把一些Fortran Code转成Object Pascal程式码,(大多是f77与f90)
由於找不到好用的转换程式(有找到一些但转起来大概就像Google翻译那种程度…=.=")
所以决定手动翻译,研究了一下Fortran的一些语法和规则之後,
一些特性(像是Common Block)大概知道怎麽转换及避免同名变数的困扰,
但是SAVE这个语句我一直想不太出来……
根据查到的资料,Fortran的Save功能是,
当一个在函式或副程式 ABC 中的区域变数变数 N 经过楚理被Save起来(假定此时N=20)後
下次再呼叫ABC时,N的初值就为前次被Save时的状态(即20)。
但是其他语言中,副程式的区域变数不是随着副程式的完毕其生命周期也跟着终结吗?
想请教板上的前辈(熟悉Fortran此功能的更好),
有没有方式在其他比较传统的语言(Object Pascal or C等)实现相同的功能?
另外想问一下,被Save起来的变数其生命周期有多长?何时才会被消灭?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.105.188
1F:推 mars90226:C有static 125.226.31.235 10/30 23:22
2F:→ PsMonkey:话说有 Fortran 版 114.25.9.199 10/30 23:42
嗯....我知道,可是我问的重点应该比较偏向跨语言的吧?所以才来这问
听说好像也有C/C++版,君不见此版也是一票C/C++的问题吗?
3F:→ MOONRAKER:static就对 218.160.176.42 10/31 02:48
感谢~後来想想,采用全域变数,
然後写程式的时候自律存取好像可以达到相同的效果.....
※ 编辑: yuchih0519 来自: 114.42.153.13 (11/01 21:05)
4F:→ callmei:FORTRAN里被SAVE的变数到程式结束才会消灭 140.112.46.73 11/15 17:17