我总是FORTRAN 77新手,我不明白为什么第一个代码显示错误,而第二个代码编译时我希望他们做同样的事情.
第一个代码(不编译并在z处引用意外数据声明语句时出错):
program FOO
integer x, y
x = 1
y = 2
integer z
z = 3
end
Run Code Online (Sandbox Code Playgroud)
此代码在功能上与第一个代码看起来100%相似,但编译时没有错误
program FOO
integer x, y, z
x = 1
y = 2
z = 3
end
Run Code Online (Sandbox Code Playgroud)
我还尝试在第一个代码中禁用隐式变量声明而没有效果.
Fortran是其中一个古怪的"定义一切顶级"语言.换句话说,这没关系:
program FOO
integer x, y
integer z
x = 1
y = 2
z = 3
end
Run Code Online (Sandbox Code Playgroud)
因为所有类型规范都在任何可执行代码之前.如果要定义变量,则应首先定义它.在这里看到例如:
这些不可执行的语句必须放在程序的开头,在第一个可执行语句之前.