我正在用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也很新,所以如果你想对前一个功能做任何评论,请继续)。
谢谢你的时间,祝你有个愉快的一天。
调用Fortran函数与调用另一个C ++函数一样便宜。通常。
问题是两种语言之间的兼容性。在Fortran中启动它的最好方法是使用iso_c_binding
,以便该函数具有C调用约定。
然后另一个问题是两种语言都需要自己的运行时库,并且没有链接器标志可以同时使用它们。因此,通常的做法是为Fortran代码创建一个共享库,并将其与C ++应用程序相链接(反之亦然,当它从Fortran调用C ++时)。