Вложенные вызовы подпрограмм
Как обстоит ситуация с вложенными аргументами, передаваемыми по gs? Допустим, есть первая локация, из неё мы вызываем вторую, передавая в неё аргументы, из второй так же вызываем третью, тоже с аргументами, что в таком случае находится в ARGS? Для каждой локации свои, переданные ей, аргументы, или при переходе в третью локацию массив args перезаписывается, и в случае возвращения во вторую его уже нельзя будет использовать?
В массиве ARGS хранятся аргументы только для данного вызова. При “возврате” массив ARGS восстанавливает те значения, которые были до вызова GS.
Пример, иллюстрирующий это поведение: argsgs.qsp
WladySpb:
Как обстоит ситуация с вложенными аргументами, передаваемыми по gs? Допустим, есть первая локация, из неё мы вызываем вторую, передавая в неё аргументы, из второй так же вызываем третью, тоже с аргументами, что в таком случае находится в ARGS? Для каждой локации свои, переданные ей, аргументы, или при переходе в третью локацию массив args перезаписывается, и в случае возвращения во вторую его уже нельзя будет использовать?
Nex:
В массиве ARGS хранятся аргументы только для данного вызова. При “возврате” массив ARGS восстанавливает те значения, которые были до вызова GS.
Отсюда вопрос: есть ли ограничение на количество таким образом вложенных подпрограмм? вторая вызывается из первой, третья из второй… n-ная из n-1-ой. Есть это n?
Сложно представить, что кто-то использует больше десяти вложений, но вдруг.
Явного ограничения нет.
Aleks Versus:
Byte:
Явного ограничения нет.
Значит могут быть неявные ограничения. :=D Одно я уже видел, когда зациклил несколько локаций друг на друга. Интересно было бы посмотреть на другие. Надеюсь, кто столкнётся - отпишется.
Я использую у себя всякие сочетания вложенных вызовов локаций друг из друга — проблем на уровне платформы не встречал.
Выделил оффтоп в отдельную тему.