/* File: recurse3.c
   Recursion and local variables.
*/



void recall(int depth) {
   int i ;
   int local1, local2 ;

   if (depth == 9) {
      printf("                  ") ;
      printf("*** Base Case depth = 9\n\n") ;
      return ;
   }

   local1 = 3 * depth ;
   local2 = 7 * depth ;

   for (i = 0 ; i < depth ; i++) {
      printf("  ") ;
   }
   printf("Recursion depth = %d local1 = %d, local2 = %d\n\n", 
      depth, local1, local2) ;

   recall(depth+1) ;

   for (i = 0 ; i < depth ; i++) {
      printf("  ") ;
   }
   printf("Return from depth = %d local1 = %d, local2 = %d\n\n", 
      depth, local1, local2) ;
}

main() {
   recall(0) ;
}
