我有一個傳統的fortran代碼,有很多像'goto 50'這樣的語句。我想知道goto的目標是全球還是本地。我的意思是,如果多個函數有一個目標'50',goto通向哪裏。fortran goto scope
感謝您的回答。
我有一個傳統的fortran代碼,有很多像'goto 50'這樣的語句。我想知道goto的目標是全球還是本地。我的意思是,如果多個函數有一個目標'50',goto通向哪裏。fortran goto scope
感謝您的回答。
語句標籤(例如「50」)必須在當前的「作用域單元」中定義,該作用域基本上轉換爲goto調用所在的子例程/函數(或主程序if該呼叫在主程序中)。
因此,例如,在下面的程序,主程序和兩個子程序中包含有自己的標籤50,goto方法去「的」行50
program testgotos
implicit none
goto 50
call second
50 call first
call second
contains
subroutine first
integer :: a = 10
goto 50
a = 20
50 print *,'First: a = ', a
end subroutine first
subroutine second
integer :: a = 20
goto 50
a = 40
50 print *,'Second: a = ', a
end subroutine second
end program testgotos