从C ++调用Fortran是多么“昂贵”?

问题描述 投票:2回答:1

我正在用C ++编写一个程序来调用我在Fortran中编写的一些函数。我打算测试一个非常基本的例子,我从C ++代码中调用一个名为toRadians的函数:

real function toRadian(degree)
  implicit none

  real, intent(in) :: degree
  real :: radians

  radians = (degree*PI)/180
  return
end function toRadian

所以我想知道,这是否“值得”?当我完成整个事情时,函数将在Fortran中被调用,其中大部分计算将被完成,但是做这个基本的例子让我想到,对于像这样的简单计算,是否调用Fortran函数比仅仅更昂贵在C ++中具有该功能?

对不起我的无知我不太确定这些编译代码之间的链接是如何工作的。 (我对Fortran也很新,所以如果你想对前一个功能做任何评论,请继续)。

谢谢你的时间,祝你有个愉快的一天。

c++ fortran g++ gfortran
1个回答
2
投票

调用Fortran函数与调用另一个C ++函数一样便宜。通常。

问题是两种语言之间的兼容性。在Fortran中启动它的最好方法是使用iso_c_binding,以便该函数具有C调用约定。

然后另一个问题是两种语言都需要自己的运行时库,并且没有链接器标志可以同时使用它们。因此,通常的做法是为Fortran代码创建一个共享库,并将其与C ++应用程序相链接(反之亦然,当它从Fortran调用C ++时)。

© www.soinside.com 2019 - 2024. All rights reserved.