请问有人会fortran77调c的吗?

frank35119 2003-02-28 10:24:22
请问有人会fortran77调c的吗?
...全文
34 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yugn 2003-03-01
  • 打赏
  • 举报
回复
强烈建议写新的fotran程序用F90/F95标准
yugn 2003-03-01
  • 打赏
  • 举报
回复
更正:
有两种方法可以使fortran调用c:
1) 这种方法无需改C程序,只需在fortran中编写interface
例:
interface
subroutine SUBa(a)
!dec$ attributes C, alia:'_SubFromC' :: SUBa
integer :: a
!dec$ attributes reference :: a
end subroutine
end interface
说明,C程序中有个函数void SubFromC(int a), 注意!dec$这部分是解释给编释器的,是必须的不是注释,其中attributes C指名函数由C编写, alia:'_SubFromC' :: SUBa中的_SubFromC是C函数编释后的名字(多了个下划线), ::SUBa指明在fortran中用SUBa代替_SubFromC。 再来参数部分,要注意前后有了attributes C,那么所有参数就默认使用传值,如果使用!dec$ attributes reference :: a将改变传递方式。
最后还要注意,fortran的复数类型在传给C时将作为两个浮点数传递,fortran的字符串没有'\o'这个结尾,所以请使用visual fortran的扩展语法(注意那个C)或者自己加上'\0':
character(len=20):: str='This is a demo'C
fotran的字符串要以传址传给C.

2)修改C函数,使fortran直接调用。关于这个,请自己查一下文档吧,上面的已够用。
yugn 2003-02-28
  • 打赏
  • 举报
回复
如果急的话,可以看一下CVF的文档,里面说得很清楚,我也一时忘记了。
我只记得要写个
!DEV 语句
用上面的句句指明传值还是值址,指明DLL,OBJ和LIB中的函数名。(暂时就那么多)

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧