LINUX.ORG.RU

История изменений

Исправление Tark, (текущая версия) :

Перечитай просто пример на фортране который.

   CALL CHECK(A, B, *10, *20, C)
   ...
10 ...
20 ...
   SUBROUTINE CHECK(X, Y, *, *, C)
   ...
50   IF (X) 60, 70, 80
60   RETURN
70   RETURN 1
80   RETURN 2
   END


Здесь как ты можешь заметить используется SUBROUTINE, а не FUNCTION, а SUBROUTINE не возвращает результата. Здесь звездочками(«*») обозначены альтернативные точки выхода. И при вызове RETURN 1, оно передает управление строку под номером 10, а при вызове RETURN 2, оно передает управление на строку под номером 20.
Но наслаждение не будет полным, если не знать, что точек входа в функцию тоже могло быть несколько, http://h21007.www2.hp.com/portal/download/files/unprot/fortran/docs/lrm/lrm01... и точки выхода с точками входа могли быть перемешаны.

Исходная версия Tark, :

Перечитай просто пример на фортране который.

<code>
CALL CHECK(A, B, *10, *20, C)
...
10 ...
20 ...
SUBROUTINE CHECK(X, Y, *, *, C)
...
50 IF (X) 60, 70, 80
60 RETURN
70 RETURN 1
80 RETURN 2
END
</code>

Здесь как ты можешь заметить используется SUBROUTINE, а не FUNCTION, а SUBROUTINE не возвращает результата. Здесь звездочками(«*») обозначены альтернативные точки выхода. И при вызове RETURN 1, оно передает управление строку под номером 10, а при вызове RETURN 2, оно передает управление на строку под номером 20.
Но наслаждение не будет полным, если не знать, что точек входа в функцию тоже могло быть несколько, http://h21007.www2.hp.com/portal/download/files/unprot/fortran/docs/lrm/lrm01... и точки выхода с точками входа могли быть перемешаны.