| 查看: 1294 | 回复: 7 | |||
| 当前主题已经存档。 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[交流]
【讨论】c 与fortran的 return 已有3人参与
|
|||
|
最近接触一个fortran程序,需要转变为标准C程序。 fortran里面有很多goto return语句,发现return在两种语言中,使用不太一样,各位有经验么? |
» 猜你喜欢
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有7人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有7人回复
磺酰氟产物,毕不了业了!
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
自荐读博
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有5人回复
不自信的我
已经有5人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+2):谢谢专家详细讨论! 2010-03-03 14:37
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+2):谢谢专家详细讨论! 2010-03-03 14:37
|
貌似c的return也是这样子的啊。 比如 void function(int a,int b) { if(condition) return; ....do something... if(other_condition) return; ....something else.... [return] //编译器会自动加 } 其实所谓的return实际上是执行汇编的ret指令,这个指令就是从调用栈弹出调用前的IP,然后继续执行EIP指向指令。 实际上FORTRAN和C的return主要是语法的不一样,实际上做的事情是差不多的。 先说subroutine c中是没有子程序(subroutine)这个概念的,不过看起来subroutine比较类似c中void类型的的函数,而且参数全部是指针(C++中用引用)类型。因此subroutine中的return,变成C,也是return,没有变化。 比如 subroutine name(a, b) implicit none integer:: a, b .... return end 可以翻译成 void name(int* a, int* b) //c void name (int& a, int& b) //c++ { ..... return; } 再说function Fortran中的返回值是直接function_name = retVal这样的,而c中则是return retVal; integer function function_name(parameter1, parameter2) implicit none integer:: parameter1, parameter2 ..... function_name = .... return 建议翻译成 int function_name(int parameter1,int parameter2) { int retVal; ....... retVal = ..... return retVal; } [ Last edited by magic7004 on 2010-3-3 at 11:20 ] |

5楼2010-03-03 11:18:06









回复此楼