![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Очередной вопрос на тему интерпретаторов
![]() В общем, я организовал стек вызов функций (то есть допускается и рекурсия). В данном стеке хранятся все данные функций. Однако, еще имеются статические переменные (те которые сохраняют свои значения при выходе из функции, до следующего вызова). Как быть с ними? При выходе из функции ее данные выталкиваются из стека и передается результат, передавать все статические переменные довольно-таки накладно (особенно, если учесть, что все переменные - строки). Чуть не забыл, ситуация осложняется тем, что функция может управлять своим состоянием, она имеет право при помощи специальной команды читать данные функции из которой она вызвана. То есть если имеется функция А, вызвавшая функцию Б, то функция Б может прочесть данные функции А (но не может их менять). Теперь представьте рекурсию, где А и Б есть одна и таже функция, где часть переменных различна, а часть совпадает (статические переменные общие на всю рекурсию).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 11.08.2009 в 10:55. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Построение графиков функций С++ (методы аппроксимации функций) | amdbodia | Общие вопросы C/C++ | 0 | 24.05.2009 15:28 |
Стек | lucky | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 12.05.2009 18:35 |
использование функций в качестве параметров других функций | mono | Помощь студентам | 0 | 20.04.2009 18:25 |
стек в PM | vladimir0108 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 08.01.2009 01:18 |
СТЕК | KORT | Фриланс | 3 | 08.09.2008 23:38 |