mgi*_*son 2 fortran save local-variables
我今天遇到的代码看起来有点像这样:
subroutine foo()
real blah
integer bar,k,i,j,ll
integer :: n_called=1
save integer
...
end
Run Code Online (Sandbox Code Playgroud)
看起来这里的意图可能是save n_called
,但是即使是一个有效的语句来保存所有整数 - 或者它是否隐含地声明了一个名为integer
并保存它的变量?
第二种解释是正确的.Fortran有许多关键字,INTEGER
是其中之一,但它没有保留字,这意味着关键字可以用作标识符,虽然这通常是一个糟糕的想法(但它仍然继续C#,其中一个可以前缀一个关键字@
和用它作为标识符吧?)
该SAVE
声明,即使它的目的n_called
是肤浅的.Fortran会自动保存所有具有初始化程序的变量,这就是代码可能按预期工作的原因.
integer :: n_called=1
Run Code Online (Sandbox Code Playgroud)
这n_called
是自动的SAVE
.对于被迫维护/扩展/创建新Fortran代码的C/C++程序员来说,这通常是一个非常糟糕的惊喜:)
归档时间: |
|
查看次数: |
191 次 |
最近记录: |