Fortran Coder

标题: 两个module互相USE [打印本页]

作者: andy8496    时间: 2025-2-9 00:16
标题: 两个module互相USE
有两个module会编译到同一个dll中被一个program同时use, 如果这两个module一定要互相USE对方中的一些子程序或者函数,有没有啥子好的办法?

作者: kyra    时间: 2025-2-9 10:00
把 module a 和 module b 中需要共同使用的部分抽取成 module c,然后 a use c , b use c
作者: andy8496    时间: 2025-2-9 23:41
kyra 发表于 2025-2-9 10:00
把 module a 和 module b 中需要共同使用的部分抽取成 module c,然后 a use c , b use c ...

嗯,这是最佳方案。但是如果抽取不便,有没有办法互相use呢?
作者: kyra    时间: 2025-2-10 16:47
也没有啥更好(方便、通用)的办法了。

可以尝试把 module a (或/和 module b,反之)的函数都定义成接口,实现都放入 submodule asub 中。
然后 b use a , asub use b。

工作量也差不多,但是更优雅一些。
作者: andy8496    时间: 2025-2-12 00:08
kyra 发表于 2025-2-10 16:47
也没有啥更好(方便、通用)的办法了。

可以尝试把 module a (或/和 module b,反之)的函数都定义成接口 ...

多谢!我再想想怎么办。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2