将FORTRAN EXTERNAL数据类型传递给C

时间:2014-11-06 15:29:55

标签: c fortran external

另一个FORTRAN / C相关问题,

如果这是我的Fortran

PROGRAM test

  IMPLICIT NONE

  EXTERNAL pass

     CALL ccode(pass)

END PROGRAM

pass表示另一个子程序

c code

void ccode_(what should go here?)

{
}

1 个答案:

答案 0 :(得分:0)

您需要知道pass是什么。具体做法是:

  • 需要什么参数?
  • 它的返回值类型是什么?
  • 它的召集惯例是什么?

一旦你知道,你可以相应地编写C代码。因此,假设它是一个接收double并返回带有int调用约定的cdecl的函数,那么您将其声明为:

typedef int (__cdecl *FuncType)(double);


void ccode_(FuncType)
{
    int retval = func(42.0);
}