Здравствуйте, Eugeny__, Вы писали:
M>>>P>>[...]
M>>>8310 CALL MSPEAK(6)
M>>>
P>>Если код MSPEAK выглядит так:
P>>P>> SUBROUTINE MSPEAK(I)
P>> INTEGER I
P>> ....
P>> I = I + 1
P>> ....
P>> RETURN
P>> END
P>>
P>>то это может кому-то доставить немало веселых минут...
E__>Ммм.. И что произойдет в этом случае? Не разбираюсь в фортране совершенно. С виду ничего такого страшного...
ЗдесьАвтор: Pavel Dvorkin
Дата: 22.02.05
Pavel Dvorkin сказал о порче константы.
Это означает следующее.
В Фортране параметры передаются по ссылке. При этом константность никак не проверяется. Поэтому после вызова подпрограммы, увеличивающей значение I, во всей программе, где написана константа 6, фактически будет использована константа 7.