作者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