23 從編譯程式到執行時,負責將其他來源(如 library)的可執行碼匯集成一整個可執行程式,是那一種輔助 系統軟體?
(A) linker
(B) preprocessor
(C) loader
(D) assembler
答案:登入後查看
統計: A(103), B(47), C(19), D(55), E(0) #3358683
統計: A(103), B(47), C(19), D(55), E(0) #3358683
詳解 (共 2 筆)
#6488753
(A) Linker(連結器) ← 正確答案
-
工作時機:在編譯完成後,但在執行前。
-
功能:將多個目標檔案(.o / .obj)與函式庫(library)合併為一個完整可執行檔(executable)。
-
用途:
-
解決符號,例如函式呼叫或全域變數的定址。
-
將你寫的主程式與標準函式庫(如 printf())連接。
-
-
類比概念:把各零件(程式模組)組裝成一部完整的機器(程式)。
(B) Preprocessor(前處理器)
-
工作時機:在編譯前。
-
功能:處理像是 #include, #define, #ifdef 等指令。
-
用途:
-
將頭文件嵌入程式。
-
做巨集替換。
-
-
產出:生成預處理後的原始碼,交給編譯器(Compiler)。
(C) Loader(載入器)
-
工作時機:執行程式時。
-
功能:將可執行檔載入記憶體,設定程式計數器(Program Counter)讓 CPU 開始執行。
-
用途:
-
把檔案放到記憶體中適當位置。
-
可能同時進行動態連結(dynamic linking)。
-
(D) Assembler(組譯器)
-
工作時機:當你用組合語言撰寫程式時。
-
功能:將組合語言(Assembly Language)轉成機器語言(Machine Code)。
-
產出:目標檔(Object File),例如 .o 檔。
2
0