良好实践规定 Fortran 中的子例程参数每个都应具有指定的意图(即intent(in)
,intent(out)
或intent(inout)
如本问题所述):
subroutine bar (a, b)
real, intent(in) :: a
real, intent(inout) :: b
b = b + a
...
但是,不指定意图是有效的 Fortran:
subroutine bar (a, b)
real, intent(in) :: a
real :: b
b = b + a
...
除了编译时检查指定为intent(inout)
的参数和没有指定意图的参数之外,是否有任何真正的区别?如果我将意图改造为旧的、无意图的代码,我应该担心什么?