司法三等申論題
106年
[檢察事務官電子資訊組] 程式語言
第 三 題
三、幾乎所有的程式都需要一些支援程式,例如輸出輸入、數學函式、記憶體管理等。這些支援程式一般都是放在支援程式庫(libraries)裡面,然後在適當的時機和主程式連結(linking)。連結的時機可以分為兩大類:靜態連結(static linking)及動態連結(dynamic linking)。請舉例解釋靜態連結及動態連結,並請說明產生與使用相關程式庫的方法。(20 分)
📝 此題為申論題
思路引導 VIP
看到此題,應立即聯想到程式編譯的生命週期,區分「連結發生在編譯期還是執行期」。答題架構需涵蓋定義、實作方法(以 C 語言的 .a 與 .so 為例),最後務必從「記憶體空間配置、執行期效能延遲(Overhead)與程式庫維護更新」三個維度進行優缺點比較,展現系統層級的深度理解。
🤖
AI 詳解
AI 專屬家教
【破題】「連結(Linking)」是將編譯後的目的檔(Object files)與所需之函式庫結合,生成可執行檔的過程。依據發生時機的不同,主要分為「靜態連結(編譯期完成)」與「動態連結(執行期完成)」,兩者在記憶體配置與執行效率上有顯著的權衡關係。 【論述】 一、靜態連結(Static Linking)
▼ 還有更多解析內容