Fortran Coder

标题: 函数的重载 [打印本页]

作者: wengxi    时间: 2015-11-27 17:01
标题: 函数的重载
今天有一个疑惑
例如我
subroutine  max(int a ,int b)
subroutine  max(int a,int b, int c)

那么,我在programme
调用max,会发生什么?我的情况是一直报错,参数有误,
A non-optional actual argument must be present when invoking a procedure with an explicit interface.
但是我在C语言中这个叫做函数的重载,我不知道Fortran是否可以这么做,请问Fortran是否可以这么使用,求指点。

后来我又想改为
function max(a,b)
function max(a,b,c)

结果会有不同吗,求知道的人给我指点一下,我查了四本书了,看了一下午没找到相关的详细的解释,自己做实验也没看懂,谢谢!

作者: vvt    时间: 2015-11-27 18:57
如果你是想求若干个数据的最大值,那么 max 函数是语法规定的,不需要自己写。
可以有任意个参数

如果你是想自己写一个函数,可以有两个参数,也可以有三个。那么可以看“可选参数”部分。

本站发布的视频教程第八期也有讲到(第38分钟开始)
http://v.fcode.cn/video-subroutine_and_function.html
作者: wengxi    时间: 2015-11-27 20:53
vvt 发表于 2015-11-27 18:57
如果你是想求若干个数据的最大值,那么 max 函数是语法规定的,不需要自己写。
可以有任意个参数

谢谢,有这么好的东西,教程早说啊





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2