[問題]Fortran的Save語句如何於其他語言中實現?

看板Programming作者 (昱)時間14年前 (2011/10/30 23:04), 編輯推噓1(103)
留言4則, 4人參與, 最新討論串1/1
最近有個需求要把一些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

10/30 23:22, , 1F
C有static
10/30 23:22, 1F

10/30 23:42, , 2F
話說有 Fortran 版
10/30 23:42, 2F
嗯....我知道,可是我問的重點應該比較偏向跨語言的吧?所以才來這問 聽說好像也有C/C++版,君不見此版也是一票C/C++的問題嗎?

10/31 02:48, , 3F
static就對
10/31 02:48, 3F
感謝~後來想想,採用全域變數, 然後寫程式的時候自律存取好像可以達到相同的效果..... ※ 編輯: yuchih0519 來自: 114.42.153.13 (11/01 21:05)

11/15 17:17, , 4F
FORTRAN裡被SAVE的變數到程式結束才會消滅
11/15 17:17, 4F
文章代碼(AID): #1EhMTqU3 (Programming)
文章代碼(AID): #1EhMTqU3 (Programming)