C++与Fortran的互操作性
C++ and Fortran interoperability
为了自己的娱乐,我决定创建一个大规模的物理引擎。我有Java和C++的经验,但没有Fortran的经验。我对Fortran的理解是,它用于科学行业,适合大型计算。我决定将C++用于任何可能添加的gui、声音、用户输入等,而Fortran将处理计算。从C++调用Fortran方法有多容易?我在谷歌上搜索过这件事,没有找到太多信息。尽管我不了解Fortran,但我决心学习它,无论学习曲线有多严格(假设我会获得适当的性能提升)。以这种方式使用Fortran实用吗?我会得到一个不错的性能提升(对于大型计算)吗?Fortran在现代世界中仍在使用,还是已经过时了?
编辑:人们不说问题出了什么问题就投了反对票,这是一种持续的模式。
我对Fortran的理解是,它用于科学行业,适合大型计算。
Fortran确实(仍然)用于科学和工程应用,以及许多其他地方。
从C++调用Fortran方法有多容易?
最新的Fortran标准对与C的互操作性有特定的规定。这些功能为C或C++代码调用Fortran例程,以及Fortran代码调用C例程和具有C链接的C++例程提供了标准方法。
C和Fortran例程相互调用的时间比Fortran标准中的C互操作规定长得多,但如何在不使用互操作功能的情况下实现这一点取决于实现。
无论学习曲线有多严格,我都决心学习[Fortran](假设我将获得适当的性能提升)。
尽管Fortran结构的某些方面使优化数字运算相对容易,但如果您希望在Fortran而不是C中实现数值例程能带来巨大收益,您可能会感到失望。您的性能可能更多地与您选择的算法有关,而不是与实现它的语言有关。
以这种方式使用Fortran实用吗?
是。
我会获得不错的性能提升吗(对于大型计算)?
这取决于很多因素,但我的粗略估计是"没有"。
Fortran在现代世界中仍在使用还是过时了?
它仍在使用,Fortran标准仍在维护和定期更新。
- COM 互操作性需要强命名程序集吗?
- CComPtr 和 std::shared_ptr 互操作性
- C和C++原子之间的互操作性
- C/C++ 与 C# 的互操作性命名约定
- C和C++中类型的互操作性
- C++与Fortran的互操作性
- 关于C#与非托管C++的互操作性的持续传奇
- java和c++的互操作性
- 如何从C++和通过COM互操作性访问.NET类的属性
- OpenCL/OpenGL 互操作性纹理段错误
- Swift和Objective-C++互操作性
- Windows XP和Windows 7之间的DCOM互操作性
- 寻找C++到 WPF/Cocoa 互操作性的跨平台、端到端示例
- QML 和 C++ 映像互操作性
- GNU Fortran与C的互操作性
- linux时区互操作性
- VS 2012与VS 2010的互操作性
- 互操作性的工作原理
- C++到D的互操作性
- c#结构序列的互操作性