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
  • the '51 C is due to the architecture of the processor not a very good candidate for recursive functions.

    instead of what you show, do something like this

    ...
    while test();
    ...
    
    // test will return '1' if unsuccesful, '0' id succesful
    bit test(void)
    {
    }
    

    Erik

Reply
  • the '51 C is due to the architecture of the processor not a very good candidate for recursive functions.

    instead of what you show, do something like this

    ...
    while test();
    ...
    
    // test will return '1' if unsuccesful, '0' id succesful
    bit test(void)
    {
    }
    

    Erik

Children