gpt4 book ai didi

c - Fortran 中的模块 "header"

转载 作者:太空宇宙 更新时间:2023-11-04 00:06:27 25 4
gpt4 key购买 nike

例如,我有一个包含库 API 的模块

module external_api
public :: func1
private
...
contains
function func1(arg1, arg2) result (r)
type(api_type1), intent(in) :: arg1
integer, intent(out) :: arg2
type(api_type2) :: r
...
end function func1
...
end module

API 函数将从第 3 方代码调用,但我不想显示/公开库的源代码。

在 C 语言中,我会简单地提供一个带有声明和编译库的头文件。在 Fortran 中,我提供编译的 .mod 文件和编译的库。但 .mod 文件是二进制格式,因此无法“读取”函数声明。

来自闭源 Fortran 库的 API 函数声明的最佳实践是什么?

最佳答案

扩展我的评论,以防你想接受它。

我是

super 粉丝
  • 记录代码
  • 创建手册页

所以我建议您使用像 doxygen 这样的工具或 ROBODoc您可以在源代码编写您的 API,然后自动创建手册页。

我强调在代码中记录 API,因为必须在另一个文件/位置记录它在实践中永远行不通。由于人们很懒惰并且不会被打扰(即使他们最初这样做,随着时间的推移懒惰也会逐渐蔓延)。如果它在例程所在的源代码中,您将更有可能保持最新。

Doxygen 可以创建所有不同类型的输出。 HTML 是最受支持和改进的。手册页还可以,但是很棒(请注意)。所以你应该弄清楚你将如何向用户展示 API。

另一件相关的事情是,doxygen 有一个 \internal 关键字,表示它仅供内部使用,如果您不想公开库中的所有内容,这很有用。但保留一种样式/处理方法来创建您的所有文档。

关于c - Fortran 中的模块 "header",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22477498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com