scope - 在 Fortran 中使用公共(public)/私有(private)语句的首选样式?

标签 scope fortran private public

例如:

module m_a
  private
  integer :: x, y
  public :: x
end module m_a

module m_b
  public
  integer :: x, y
  private :: y
end module m_b

显然变量xy在模块 m_a 中具有等效范围和 m_b .我的问题是,从编程风格的角度来看,哪个更受欢迎?

在 Fortran 90/95 的大多数教程中,模块样式 m_a被采纳。然而,对于一个包含数百个模块的复杂层次结构的大型项目,我注意到 sytle m_a 的编译时间明显更长。比样式m_b .

我还没有找到讨论过的类似主题。可能我用错了public/private模块层次结构中的语句?有什么建议么?

最佳答案

样式 m_a 是首选,默认设置为私有(private),并且项目显式声明为公共(public)。使用这种方法,程序员可以很容易地识别模块导出(公共(public))哪些项目。使用另一种方法,这些信息很难弄清楚。帮助程序员理解模块比编译时间更重要。

关于scope - 在 Fortran 中使用公共(public)/私有(private)语句的首选样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16147606/

相关文章:

c# - 如何使用属性将私有(private)数组公开为只读?

PHP:$_SESSION - 将临时使用的数据存储在 $_SESSION 变量中的优缺点是什么

python - 脚本之间的全局变量

c# - 在声明之前不能使用局部变量

c++ - 堆上的对象何时超出范围

fortran - 将数组传入/传出程序 Fortran 90 的函数

c++ - C++ 中的私有(private)函数与静态函数

r - 将字符/字符串从 R 传递到 Fortran

ubuntu - 如何在 ubuntu 16.06 上安装 libgfortran.so.4

c++ - 我们什么时候需要 C++ 中的私有(private)构造函数?