PDA

Просмотр полной версии : [Вопрос] Рекурсия



Salik_Davince
08.09.2022, 06:23
Здравстрвуйте, нашел для себя некий инклуд облегчающую работу с ротациями в сампе, но инклуд давно как не поддерживается а автор и вовсе ушел из активности, доработки ротации от nero 3d, только в этом случае используются эммиты, так вот, дело в том что при компилировании компилятор выдает куча ошибок и несостыковок о рекурсии, ясное дело, она присутствует, но вот в чем проблема, компилятор не выдает коретно с какого момента идет рекурсия, а только указывает на адрес в памяти и тому подобное, а дальше уже куча кода которые перенаправляются друг на друга, хотя в коде нет ничего не обычного (так по мне).

[!] Хотелось бы хотя бы узнать и если можно решить сею проблему с рекурсией в инклуде, и данный инклуд скорее понадобится очень большой части аудитории, да и решит очень многие вопросы с ротациями.

Ссылка на инклуд - https://my-files.su/yo8avk

Nexius_Tailer
08.09.2022, 17:27
Ну рекурсия и рекурсия. Ничего плохого, если она не бесконечная. Во многих инклудах можешь её найти, если включена диагностика в компиляторе.

DeimoS
08.09.2022, 21:13
Беглый просмотр кода показывает, что рекурсия там, как минимум, в GetDynamicObjectAttachedPos/GetDynamicObjectPosRot/ (в обоих случаях исправить её можно при помощи goto).

Ну и забивать на рекурсию я бы всё же не советовал. Ибо статистика компилятора полезна, как минимум, для того, чтоб отловить момент переполнение стека. В противном случае он может стать крайне неприятным сюрпризом - особенно если обнаружится он не при тестировании (что может быть довольно трудно, ибо нужно вызвать прямо конкретный участок кода, который может быть "скрыт" различными условиями), а в проде. И ещё более особенно в случае, если проект коммерческий.