作者hiyiyi (yiyi)
看板Fortran
標題[請益] 請問副程式或函式的回傳位址
時間Fri Dec 17 17:11:06 2010
請問一下
一般副程式或函式被呼叫時,當執行結束後會回到呼叫的副程式或函式再繼續往下執行
請問有辦法可以直接跳到最初的副程式嗎?
舉例如下
A呼叫B,B呼叫C,C呼叫D
如果讓B有一個ENTRY,讓D呼叫B的ENTRY後,可以回到A
目前的感覺好像不行
D呼叫B的ENTRY後,似乎還是會回到C
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.120.114
1F:→ MHG:遞迴?! 12/17 17:28
2F:推 Semisphere:四個sub都自己寫的嗎 12/17 19:40
3F:→ hiyiyi:我剛試了一下,流程還是是一條龍的去跟回,不知是否有像VB 12/20 09:49
4F:→ hiyiyi:的Try Catch的攔截功能 12/20 09:50
5F:→ Semisphere:若要針對IO錯誤進行攔截,得要自己寫相關偵測函式 12/20 13:11
6F:→ Semisphere:不過我不太瞭解你副程式D要如何呼叫副程式B的Entry? 12/20 13:13
7F:→ Semisphere:印象中Fortran沒有System.Exception,想攔截其他錯誤 12/20 13:14
8F:→ Semisphere:就等他炸掉看Debug資訊吧xd 12/20 13:15
9F:→ hiyiyi:主要是想要讓別人的程式轉為module包裝,可是他的錯誤訊息 12/20 16:58
10F:→ hiyiyi:是呼叫某一個sub來處理,但是中間過程有太多function 12/20 16:59
11F:→ hiyiyi:這樣沒辦法用主程式來控制錯誤訊息的處理,除非大改寫=.= 12/20 17:01
12F:→ Semisphere:可以改寫就代表有程式碼可以用,開個全域變數 12/21 11:38
13F:→ Semisphere:到他處理錯誤訊息的sub,將各種情況賦值給全域變數 12/21 11:39
14F:→ Semisphere:在將處理錯誤訊息的sub,轉到你自己要處理的sub 12/21 11:41
15F:→ Semisphere:用全域變數判斷情況 12/21 11:41
16F:→ Semisphere:僅供參考,這得看你程式架構才能決定何種處理方式最好 12/21 11:43