Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
proc [2019/06/06 08:38]
neils [Recursion]
proc [2019/06/13 20:55] (current)
neils [Recursion]
Line 115: Line 115:
  
 When the compiler detects direct recursion, it generates code to save local variables and procedure parameters on the stack and restore them when the procedure returns. When the compiler detects direct recursion, it generates code to save local variables and procedure parameters on the stack and restore them when the procedure returns.
 +
 +==== Prevent stack overflow ====
  
 **Be careful with recursion**. The C64's stack is very small, it's very easy to provoke a stack overflow. To estimate how big stack space you'll need, you can use this formula: **Be careful with recursion**. The C64's stack is very small, it's very easy to provoke a stack overflow. To estimate how big stack space you'll need, you can use this formula:
Line 121: Line 123:
  
 Always leave some stack space for normal operations as well (8-16 bytes in general, but this can be more depending on the context). Always leave some stack space for normal operations as well (8-16 bytes in general, but this can be more depending on the context).
 +
 +**Tip**: a good practice to prevent stack overflow is to move as many local variables to the global scope as possible. ​