申論題內容
三、下列是一個簡單的 C 遞迴副程式(recursive function)。請用這個例子來解釋編譯器
在處理遞迴的呼叫時,如何在那一種記憶體區塊處理與配置程式中的變數(a, c, d)。
請繪製當 foo(1) 被呼叫之後,並且遞迴到程式結束之間的記憶體(activation record)
配置演進圖,以及 a, c, d 在每一次遞迴的值。(20 分)
int foo(int a) {
int c = 0, d = 0 ;
if (a >= 100) return a ;
c = a * 10 ;
d = foo(c) ;
return d ;
}