查看“Mix C Fortran”的源代码
来自Ubuntu中文
←
Mix C Fortran
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==Fortran与C混合编程== 由于 GNU 的 Fortran 和 C 语言二者的函数彼此可以直接相互调用,所以混合编程可以非常容易地实现。只要你足够仔细,确保函数调用时传递的参数类型正确,函数就可以在两种语言间来回调用,就像它们是同一种语言一样。 下表中列出了 Fortran 的数据类型和它们在 C 中对应的类型。这张表在大多数平台下是没问题的,但是或许会有例外的情况发生。在你打算传递某种数据类型时,先编写一个简单的例子进行测试将是很明智的。 <table border="1"> <tr><td>'''C 类型'''</td><td>'''Fortran 类型'''</td><td>'''描述'''</td></tr> <tr><td>signed char</td><td>INTEGER*1</td><td>8位有符号整数</td></tr> <tr><td>short</td><td>INTEGER*2</td><td>16位有符号整数</td></tr> <tr><td>int</td><td>INTEGER</td><td>32位有符号整数</td></tr> <tr><td>float</td><td>REAL</td><td>32位浮点数</td></tr> <tr><td>double</td><td>DOUBLE PRECISION</td><td>64位浮点数</td></tr> <tr><td>void sub_()</td><td>SUBROUTINE SUB()</td><td>无返回值的 C 函数等价于 Fortran 子程序</td></tr> <tr><td>float fun_()</td><td>REAL FUNCTION FUN()</td><td>有返回值的 C 函数等价于 Fortran 的函数</td></tr> </table> 由于 Fortran 总是以引用的方式传递参数,而 C 则始终以地址方式传递数组,因此数组做参数时不需做任何修改。但是对多维数组来说,混合调用时其下标需要翻转,因为 Fortran 的数组是以列为主序(column-major order)而 C 数组以行为主序(row-major order)。 ==Fortran调用C函数== ==C调用Fortran函数== ==其他参考== {{Gccmorerefer}}
该页面使用的模板:
模板:Gccmorerefer
(
查看源代码
)
返回
Mix C Fortran
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息