Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 正确的fortran函数语法_Function_Fortran - Fatal编程技术网

Function 正确的fortran函数语法

Function 正确的fortran函数语法,function,fortran,Function,Fortran,我对fortran中函数的各种语法感到困惑 function func(i) result(j) ... end function fun 这是第二个例子 real function func (x) ... end function func 这是第三个例子 real function func (x) ... return end function func 根据现代fortran标准,哪一种是合适的语法?在第二个和第三个示例中,如果我在real类型的程

我对fortran中函数的各种语法感到困惑

 function func(i) result(j)
...
end function fun
这是第二个例子

 real function func (x)
...
end function func
这是第三个例子

  real function func (x)
    ...
    return
    end function func

根据现代fortran标准,哪一种是合适的语法?在第二个和第三个示例中,如果我在real类型的程序中声明了多个变量,编译器如何知道返回哪个变量?

根据具体情况,您所有的示例都是合适的。这一点可以归结为风格偏好

如果开始函数语句没有结果说明符,则函数体内部的函数结果与函数同名

可以在开始函数语句中使用结果说明符(如第一个示例中所示),将函数结果的名称更改为其他名称

您可能希望这样做,因为您更喜欢为函数结果使用函数名而不是函数名。如果确实希望递归调用函数,则可能需要执行此操作

您可以在开始语句中指定函数的类型(根据第二个或第三个示例),也可以在函数本身的规范部分(在主体中)指定函数的类型(这可能是在第一个示例中发生的,隐式类型除外)。函数结果的属性必须在函数体中指定,因此作为一种风格,有些人更喜欢将所有内容都保存在函数体中(这也避免了与定义的范围和顺序相关的一些模糊的复杂情况)。您永远不应该使用隐式类型

上一个示例只是在函数的可执行部分的末尾有一个显式的return语句。这是多余的-当执行到达函数可执行部分的末尾时,函数会自动返回。有些人更喜欢显式的
返回
,可能是因为他们根深蒂固地担心编译器可能突然忘记自动返回,而另一些人则认为这是荒谬的愚蠢


重复-如果开始的函数语句中没有result子句,则函数result的名称就是函数名称,否则它就是result子句中的名称。

@HighPerformanceMark我同意-虽然相关,但这不是重复的(至少是重复的)