免費開始練習
司法三等申論題 105年 [檢察事務官電子資訊組] 程式語言

第 五 題

程式執行過程常會產生啟動記錄(activation record),請解釋什麼是 activation record。若有一 C 副程式,其參數(parameter)與區域變數(local variables)如下,請以圖示說明其 activation record。(20 分) void fun1( int x, float y) { float data[3]; int count; float total; . . . }
📝 此題為申論題

思路引導 VIP

看到「activation record(啟動記錄)」,應直覺聯想到程式執行時的「堆疊框架(Stack Frame)」。解題時先給出精確定義與記憶體配置時機,接著依照 C 語言的呼叫慣例(Calling Convention),畫出包含參數、返回位址、Dynamic Link 及區域變數的堆疊結構圖,並確保標出給定程式碼中所有變數的位置。

🤖
AI 詳解 AI 專屬家教

【破題】 「啟動記錄(Activation Record)」,又稱為堆疊框架(Stack Frame),是編譯器在執行期間為了管理副程式(Function/Procedure)的呼叫與返回,而於執行時期堆疊(Runtime Stack)上配置的一塊連續記憶體空間。 【論述】

▼ 還有更多解析內容

升級 VIP 解鎖