返回類型不匹配的話就用gfortran 4.1.2和4.8.0 gfortran編譯下面簡單的代碼:gfortran 4.8.0錯誤?功能
function foo(a, b) result(res)
integer, intent(in) :: a, b
integer res
res = a+b
end function foo
program test
integer a, b, c
c = foo(a, b)
end program test
gfortran 4.1.2成功,但gfortran 4.8.0給出了奇怪的錯誤:
test.F90:14.11:
c = foo(a, b)
1
Error: Return type mismatch of function 'foo' at (1) (REAL(4)/INTEGER(4))
任何想法?
請參閱http://stackoverflow.com/questions/16446397/data-type-mismatch-in-fortran#comment23592695_16446397 – 2013-05-09 05:48:37
謝謝@Mark!我正在編寫一個掃描Fortran代碼並構建它們的工具,這只是一個測試。我更熟悉'module'。就我個人而言,我在我的Fortran項目的每個代碼中都加上了'implicit none',但忘記在測試中添加它!而且我還需要在程序中聲明函數'foo'。 – 2013-05-09 06:05:21