RU

Вложенные вызовы подпрограмм

WladySpb #8 04.09.2011 11:57 5 comments 5641 views

Как обстоит ситуация с вложенными аргументами, передаваемыми по gs? Допустим, есть первая локация, из неё мы вызываем вторую, передавая в неё аргументы, из второй так же вызываем третью, тоже с аргументами, что в таком случае находится в ARGS? Для каждой локации свои, переданные ей, аргументы, или при переходе в третью локацию массив args перезаписывается, и в случае возвращения во вторую его уже нельзя будет использовать?

В массиве ARGS хранятся аргументы только для данного вызова. При “возврате” массив ARGS восстанавливает те значения, которые были до вызова GS.

Пример, иллюстрирующий это поведение: argsgs.qsp

Aleks Versus Moderator 04.09.2011 11:57 (14 years ago)

WladySpb:

Как обстоит ситуация с вложенными аргументами, передаваемыми по gs? Допустим, есть первая локация, из неё мы вызываем вторую, передавая в неё аргументы, из второй так же вызываем третью, тоже с аргументами, что в таком случае находится в ARGS? Для каждой локации свои, переданные ей, аргументы, или при переходе в третью локацию массив args перезаписывается, и в случае возвращения во вторую его уже нельзя будет использовать?

Nex:

В массиве ARGS хранятся аргументы только для данного вызова. При “возврате” массив ARGS восстанавливает те значения, которые были до вызова GS.

Отсюда вопрос: есть ли ограничение на количество таким образом вложенных подпрограмм? вторая вызывается из первой, третья из второй… n-ная из n-1-ой. Есть это n?
Сложно представить, что кто-то использует больше десяти вложений, но вдруг.

Явного ограничения нет.

Aleks Versus:

Byte:

Явного ограничения нет.

Значит могут быть неявные ограничения. :=D Одно я уже видел, когда зациклил несколько локаций друг на друга. Интересно было бы посмотреть на другие. Надеюсь, кто столкнётся - отпишется.

Я использую у себя всякие сочетания вложенных вызовов локаций друг из друга — проблем на уровне платформы не встречал.

Выделил оффтоп в отдельную тему.

Log in or Register to post comments.