主函数和function写在同一文件中,参数类型和数量都是错的,但编译还是通过了,结果也算出来了。
[Fortran] 纯文本查看 复制代码 program main
implicit none
integer:: a=0, b=100
integer:: func
print*, func(a,b)
end
function func(arg)
implicit none
real,intent(in)::arg
integer:: func
func = arg + 1
end
编译器只是给出了警告,但还是能编译成功的。
我知道这是隐式接口的问题,但我不清楚具体发生了什么。请问:
1. 将 function 写在 program 的前面和写在 program 的后面有什么区别?
2. 将 function 和 program 写在不同的文件中编译和写在同一文件中编译有什么区别?
3. Fortran 的编译逻辑和 C 语言有什么不同吗?
-- gcc version 8.1.0
|