将派生类型从Fortran传递给C ++

时间:2011-01-18 16:23:54

标签: c++ fortran

我有一个旧的Fortran77程序,它调用C ++函数并向其传递几个值数组(总共约100个单独的值)。我想将数组转换为派生类型,以使代码更具可读性,并为数组的各个成员指定名称。

是否可以将派生类型从Fortran传递给C ++函数?

C ++如何知道结构如何?我是否必须两次定义结构(一次在Fortran中,一次在C ++中),如果是,是否有任何自动方法来检查两个结构是否同步?

我正在使用GCC;我显然必须将Fortran代码切换到Fortran95或更高版本。

1 个答案:

答案 0 :(得分:3)

查看ISO-C_BINDING,它是F2003的一部分的C-Fortran绑定。您可以使用BIND(C)属性创建派生类型,该属性将与“随播C处理器”的C结构兼容(在gfortran,gcc的情况下)。

请参阅gfortran手册中的第7章:http://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html