10 在編譯與建立程式的過程中,哪個步驟會處理庫存的連結?
(A) 前置處理
(B) 編譯
(C) 連結
(D) 執行
統計: A(1), B(2), C(3), D(1), E(0) #3399857
詳解 (共 2 筆)
【第一步:找關鍵字】
關鍵字:
-
編譯與建立程式的過程(整個流程)
-
庫存的連結(link library)
-
哪個步驟(流程順序題)
? 關鍵就是「連結 library」這件事是在哪一步發生
【第二步:白話翻譯】
這題在問:
? 「你寫好程式後,電腦什麼時候會把外部函式庫接進來?」
【第三步:解題思路】
這題在考什麼觀念?
? 編譯流程(Compilation Pipeline)
解題步驟
-
先記住完整流程
-
找出「哪一步會處理 library」
-
對應到選項
原理與規則(生活比喻)
把程式建置想成「做一份報告」:
-
前置處理(Preprocessing)
→ 整理資料(include、巨集) -
編譯(Compilation)
→ 把內容寫成正式文件(轉成機器碼) -
連結(Linking)
→ 把「外部資料」補進來(library) -
執行(Execution)
→ 開始使用
? 「連結 library」就是在第 3 步
【第四步:選項分析】
(A) 為什麼錯?
✘ 錯
**前置處理(preprocessing)**做的是:
-
#include
-
#define
? 還沒有真正處理 library
(B) 為什麼錯?
✘ 錯
**編譯(compilation)**是:
-
把程式轉成目標檔(object file)
? 但還沒把 library 接進來
(C) 為什麼對?
✔ 正確(本題答案)
? **連結(linking)**才是:
-
把 .o 檔 + library 合併
-
產生最終可執行檔
? 所以 library 就是在這一步處理
(D) 為什麼錯?
✘ 錯
**執行(execution)**是:
-
程式已經完成後才執行
? 不是建置過程的一部分
【觀念補充與延伸】
核心觀念定位
? 系統程式(編譯流程)
? 必考基礎題
法條或定義
完整流程:
-
前置處理(Preprocessing)
-
編譯(Compilation)
-
組譯(Assembly)
-
連結(Linking)
? 最後才產生可執行檔
流程圖(重點)
↓
前置處理
↓
編譯
↓
組譯 → 產生 .o
↓
連結(加入 library)
↓
可執行檔
觸類旁通(舉一反三)
對比概念
-
靜態連結(static linking)
-
動態連結(dynamic linking)
? 都是在「連結階段」處理
變化題型
-
問:.o 檔是在哪個階段產生?
? 組譯(assembly)
【記憶口訣】
? 「連 library 就在 linking」
【常見陷阱】
學生最容易搞混的地方
把「編譯」和「連結」混在一起
心理盲點
以為編譯就已經完成全部工作
避坑指南
? 看到「library」:
直接反射:
→ 連結(linking)