再帰に基づくいくつかの操作を示す以下のコードを見つけてください。この再帰がどのように機能するかを説明してください。
#include <stdio.h>
int func(int);
main()
{
int ret = 0;
ret = func(6);
printf("The val is %d\n",ret);
}
int func(int m)
{
if((m==0)||(m==1))
{
return 1;
}
else
{
return (func(m-1)+func(m-2));
}
}
実行すると、val の値は 13 になります。このアンワインド操作がスタックでどのように発生するのか、誰か説明してください。