Fortran Coder

楼主: sharpcoder
打印 上一主题 下一主题

[混编] Fortran和C/C++混编

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2016-1-13 09:01:05 | 显示全部楼层
你问的问题每一个都不是三言两语可以说清楚的。

ISO_C_Binding 是好的选择。详情可以看《Modern Fortran Explained》第12章。本论坛本版块有混编分类,也可以看看以前的帖子。

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2016-1-13 11:03:28 | 显示全部楼层
打包成 dll 或 so 就可以了,我们也是做商业化程序,经常会使用到混编,打包成 dll 是很常见的路数。
包括成熟的软件,matlab 自身,也使用了多种语言(据说有13种之多)。我们行业用到的很多专业软件,也都是多种语言书写完成的。
有一些情况不适合打包成 dll,例如害怕别人猜测 dll 接口而非法调用。此时可以使用 lib 或 obj 混编。

不管什么方式,都可以,也都应该使用 ISO_C_Binding 来规范化接口。

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2016-1-13 18:30:12 | 显示全部楼层
书上只会讲语法如何规范接口,并不会讲具体的编辑环境的操作。
使用VS的话,Fortran和C要分别位于两个不同的工程。但可以位于同一个解决方案(当然两个解决方案也可以)

越长的代码,我是越不希望改写。因为改写会有很大的风险,很难确定在各种数据模型的情况下都能得到原来正确的结果。

混编是极好的。fortran 代码改好了,比C/C++更容易维护。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-5 21:56

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表