Есть рекурсивная функция f(). Он просматривает cond, а затем либо возвращает, либо выполняет f(), а затем g(). Считайте cond внешней переменной, которую можно установить где-то еще, возможно, в другом потоке.
Если первые пять раз проверяется
cond,cond == true, а шестой раз,cond == false, опишите поток кода.Поскольку это рекурсивно, код может страдать от переполнения стека, если
cond == trueслишком долго. Заполните функциюiterative_f()так, чтобы поток кода был идентичен потоку кода в (1).//recursive void f() { if(cond == false) return; f(); g(); } //iterative void iterative_f() { }
boolean_variable == false! Пожалуйста, используйтеif (!cond)илиif (not cond)(как эквивалентные, так и стандартные, хотя я не уверен, что даже MSVC++ 2010 поддерживаетnot- думаю, они слишком беспокоятся о нарушении кода, где люди не называли свою переменную). - person Tony Delroy   schedule 08.04.2011notне является ключевым словом C. - person JeremyP   schedule 08.04.2011