Привет. Вопрос по поводу организации проекта. По мере его роста возникает вопрос - как избегать рекурсию если захотелось дописать/переписать какую-то функцию (если я пишу новую функцию, то её, естественно, пока ещё никто не использовал). Мне видится два варианта:
1. cc/hh образуют единую единицу, которая может ссылаться на нижележащие единицы, ссылка на верх запрещена. Я даже спец утилиту написал, довольно неплохо вышло, строит иерархию, показывает обратные зависимости каждой единицы.
2. забить на иерархию. Если добавляю в тело ссылку на что-то из проекта, то меняею имя функции и смотрю на ошибки компиляции (отсутствие упоминания новоиспользованной части проекта). Различные run time проверки с той же серии.
Не знаю, позволило ли моё косноязычие донести смысл. Как вы поступаете в реальных проектах (сложней одномодульного hello world)? Сидеть ждать переполнения стека и пол дня копать под отладчиком?