c - 将 FORTRAN EXTERNAL 数据类型传递给 C

标签 c fortran external

另一个与 FORTRAN/C 相关的问题,

如果这是我的 Fortran

PROGRAM test

  IMPLICIT NONE

  EXTERNAL pass

     CALL ccode(pass)

END PROGRAM

其中 pass 指的是另一个子例程

c代码

void ccode_(what should go here?)

{
}

最佳答案

您需要知道pass是什么。具体来说:

  • 它需要什么参数?
  • 它的返回值类型是什么?
  • 它的调用约定是什么?

一旦了解了这一点,您就可以相应地编写 C 代码。因此,假设它是一个使用 cdecl 调用约定接收 double 并返回 int 的函数,那么您可以像这样声明它:

typedef int (__cdecl *FuncType)(double);


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

关于c - 将 FORTRAN EXTERNAL 数据类型传递给 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26783190/

相关文章:

c - 将多个整数打印为一个任意长的十进制字符串

c - 在eclipse中编辑makefile

python - 使用 ctypes 从 numba 调用 fortran

makefile - 如何使用模块为 Fortran 编写 makefile?

html - 在用户连续点击时加载不同的 CSS 文件,而不重新加载 HTML 页面? CSS 布局必须更改 onclick

java - Android Java 特定音乐文件夹

c++ - 如何在 C 中设计样式?

gcc - 64 位服务器上的 32 位 Fortran

CSS:样式和颜色外部链接

c - 如何从 jpg 图像中获取 RGB888(24 位)和 RGB565(16 位)帧缓冲区转储?