我对 Fortran 很陌生。我正在尝试编译这个 Fortran,我认为是 90???代码。我正在使用带有英特尔编译器的 Visual Studio。
下面的代码给我一个错误 5082。我完全不知道为什么。就像字面上没有任何线索。拜托,请帮忙。
integer function Dub(n)
integer n
Dub = 2*n
return
end
program Subroutines
implicit none
! Variables
integer n
n = 5
! Body of Subroutines
write(*,*) n
Dub(n)
write(*,*) 'Press Enter to Exit'
read(*,*)
stop
end program Subroutines
在 Fortran 中,对函数或子例程的调用必须是语句(或初始化表达式,但这是更高级的)的一部分。name(argument[s])
与 C、C++ 和 Java 等其他语言不同,它本身并不是一个语句。函数调用必须在表达式中,子程序调用必须使用call
关键词。看https://en.wikibooks.org/wiki/Fortran/Fortran_procedures_and_functions https://en.wikibooks.org/wiki/Fortran/Fortran_procedures_and_functions举些例子。
将程序的该行更改为n = Dub(n)
会使它合法,但毫无用处。该函数除了返回一个值之外什么也不做,并且您的主程序对返回的值没有做任何有用的事情。通常,您调用函数是因为您希望执行该函数产生副作用,或者使用返回值,或者两者兼而有之。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)