This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Recursion in embedded system

Hi,
Can anybody give an insight whether this is good or not in embedded environment?
I have a function which call itself when a condition is false, see code sample below:

void Test(void)
{
   U8 temp;
   U8 temp1;
   U16 temp2;
   U16 temp3;

   if(some_extern_flag)
   {
      //Exit to this function
   }
   else
   {
     Test();   //Call me again
   }
}

Does it create memory leak when called many times, say 5 times the flag is false, it will call itself 5x?
This function doesn't called from either ISR or other function, just within it.
Will this create a problem later on?

thanks
gp

Parents
  • Can anybody give an insight whether this is good or not in embedded environment?

    That code is not good in any environment. It's just plain silly. There are valid uses for recursion, some even applicable to embedded systems. But that thing's far from being in that category.

    If you wanted to run a loop, run a loop. Don't bastardize recursion to do its job.

Reply
  • Can anybody give an insight whether this is good or not in embedded environment?

    That code is not good in any environment. It's just plain silly. There are valid uses for recursion, some even applicable to embedded systems. But that thing's far from being in that category.

    If you wanted to run a loop, run a loop. Don't bastardize recursion to do its job.

Children
No data