Fortran Coder

查看: 1347|回复: 4
打印 上一主题 下一主题

[求助] 编译问题

[复制链接]

31

帖子

10

主题

0

精华

熟手

F 币
334 元
贡献
128 点
跳转到指定楼层
楼主
发表于 2023-8-6 19:18:39 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
主函数和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
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

31

帖子

10

主题

0

精华

熟手

F 币
334 元
贡献
128 点
沙发
 楼主| 发表于 2023-8-6 21:09:21 | 显示全部楼层
fcode 发表于 2023-8-6 20:22
不管是做为程序员,还是编译器的开发者。
都想尽了一切办法,让错误提前。
所谓错误提前,就是让错误尽可能 ...

感谢感谢!
以前用Matlab和C比较多。看见有的fortran函数是用内部过程,又看见有些代码是分开写的,比较混乱。
谢谢刘涛详细的解答
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-13 00:15

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表